一、起源
最近对单元测试比较感兴趣,之后就上网搜了一些测试的框架,C++项目使用的测试框架基本上都使用的GoogleTest,之后就开启了gtest的学习之路。
主要是根据《玩转Google开源C++单元测试框架Google Test系列(gtest)》这个系列的博客来学习的。
因为平时的项目主要是MFC项目,就想着给MFC程序搭建一个测试框架出来,上网搜主要都是《gtest测试MFC项目》类似的。
跟着网上的教程走了很多遍,都没有成功,网上又没有更多的相关资料,就放弃在MFC项目中直接搭建测试框架的想法。
二、解决方案
既然不能直接在MFC程序中运行gtest,那就新建一个控制台项目,引用需要测试的MFC项目就行了。
接下来我们用这种方式来搭建一个测试框架吧。
1、新建MFC程序
建MFC程序的过程就不讲了,结果如下:
2、在当前的解决方案下新建一个控制台程序,如图:
3、在新建的DemoTest项目中搭建gtest测试环境
步骤参考《玩转Google开源C++单元测试框架Google Test系列(gtest)》,实测有用。
4、设置DemoTest项目引用Demo项目
光标移至DemoTest项目,右击 --》 引用 --》添加新引用 ,选择Demo项目,点击确定即可。
5、在Demo中新建include.h文件,将需要测试的类所在文件引用的此文件中。
新建一个测试类CTest 代码如下:
#pragma once class CTest
{
public:
int TestAdd(int a, int b)
{
return a+b;
}
};
将CTest头文件引用到include.h中。
6、在DemoTest项目中包含Demo项目的include.h路径
选中DemoTest点击右键 --》属性 --》C++目录 --》包含目录 选择Demo项目 include文件所在目录
7、测试和结果
在DemoTest 项目中新建TestCase文件,代码如下
#pragma once
#include <gtest/gtest.h>
#include "include.h" TEST(ADDTEST,testadd)
{
CTest* addtest = new CTest;
EXPECT_EQ(,addtest->TestAdd(,));
}
运行DemoTest项目 结果如下: