gtest和gmock在C语言项目上的使用

本文详细介绍了如何在C语言项目上使用gtest和gmock进行单元测试。首先,通过安装mingw并下载gtest和gmock源码来搭建环境。接着,编译gmock并运行测试确保其正确安装。最后,阐述了如何在C语言项目中适配gmock,包括定义mock类、描述方法、实例化和包装mock函数进行单元测试。文章还提供了具体的文件结构和Makefile修改示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gtest和gmock是针对c/c++的单元测试框架。
嵌入式中大多采用C语言进行开发,为了使用gmock对C语言项目进行单元测试,存在一些而外的工作需要做。
一、环境搭建
1.安装mingw
https://osdn.net/projects/mingw/releases/
添加E:\MinGW\mingw64\bin 到系统环境变量中
2.下载gtest gmock源码
https://github.com/google/googletest
二、编译gmock
1.拷贝E:\MinGW\mingw64\bin\mingw32-make.exe 到 E:\googletest-master\googlemock\make\mingw32-make.exe
2.执行E:\googletest-master\googlemock\make\mingw32-make.exe 在这里插入图片描述
运行结果将生成gmock_test.exe
在这里插入图片描述
运行gmock_test.exe
在这里插入图片描述
至此,gmock编译完成
三、适配到C语言项目中使用
1、在C语言项目中使用gtest

2、在C语言项目中使用gmock
定义mock 类
描述mock类中的方法
实例化mock类得到实例
使用函数包装mock类中的方法
使用mock函数进行单元测试

在googletest目录下新建一个test_c_code目录在这里插入图片描述
新建两个C语言文件和一个C++测试文件:
在这里插入图片描述
code_in_c.h

#ifndef __CODE_IN_C_H__
#define __CODE_IN_C_H__

typedef struct c_struct_t{
   
    char *p_c_pointer;
    int(*p_c_func)(struct c_struct_t*);
}c_struct_t;

int c_func_caller(c_struct_t* p_c_struct);

#endif

code_in_c.c

#include "code_in_c.h"
#include <stdio.h>

int c_func(c_struct_t *p_c_struct)
{
   
    printf("%s", p_c_struct->p_c_pointer);
    return 0;
}

int c_func_caller(c_struct_t* p_c_struct)
{
   
    char words[
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值