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[