最近开发新项目,负责数据模型的开发。有机会从零开始编码,趁机将一直以来关注但没有实践的googletest实践一把。
下面将一些感受记录如下,也是个积累。
一:环境搭建
版本:
下载googletest的最新版本 1.60.
用Vs2010进行编译。
boost_1.49
注:之前的1.5在vs2010下编译有问题。
环境变量:
GMOCK_DIR =D:\gmock-1.6.0
*GTEST_DIR =D:\gmock-1.6.0\gtest
*BOOST_ROOT = D:\boost_1_49_0
编译:用vs2010打开 D:\gmock-1.6.0\msvc\2010 解决方案。编译,得到gmock.lib
由于googlemock 已经包含googletest 所以这里只要googlemock即可。
二:建立测试工程
1:建立win32 控制台程序
主程序代码
#include "stdafx.h"
#include<iostream>
#include<gtest/gtest.h>
#include<gmock/gmock.h>
int _tmain(int argc, _TCHAR* argv[])
{
testing::InitGoogleMock(&argc, argv);
int r = RUN_ALL_TESTS();
return 0;
}
2:测试工程设置
/********************************************************************************
*使用方法:
*
*1:
*系统变量路径
*GMOCK_DIR =D:\gmock-1.6.0
*GTEST_DIR =D:\gmock-1.6.0\gtest
*BOOST_ROOT = D:\boost_1_49_0
*BETESTED_INCLUDE = E:\..\include
*
*2:
*设置
* c/c++->inlcude目录:$(GMOCK_DIR)/include;$(GTEST_DIR)/include;被测试类头文件目录;其他头文件目录
* 设置项目其他属性:
* 配置属性-常规:输出目录,中间目录,输出执行文件名
* 连接器-常规:附加库目录:..\..\..\..\lib\debug
* 输入:附加依赖项 gmock.lib
*
*3:
*将 gmock.lib放到测试项目目录下(并添加到项目中)
*
*4:
*对于测试用的文件命名规则
*利用gmock进行测试的用例文件都加上 M 前缀
*利用gtest进行测试的用例文件都加上 T 前缀
*
*5:
*在..\Case 目录下建立测试用例文件 mock文件(Mmock1.h、Mmock1.cpp);测试用例(Mcase1.h、Mcase1.cpp).
*在..\SRC 目录下建立被测试演示文件class1.H/CPP;FUNC1.H/CPP
*并将这两个目录添加到该工程设置中(c/c++->inlcude,见第2条)
*
**在mock声明文件(Mmock1.h)include类声明文件(Mclass1.h)
*在测试用例文件(Mcase1.h)中include mock声明文件(Mmock1.h)
*
*在Mcase1.h 文件中统一包含gmock的相关头文件,命名空间、以及类及其mock类的头文件
*
*6:
*测试用例包的名称和被测试类相同.eg:Point的测试用例包和测试用例名称为: TEST(Point, create)
*********************************************************************************/
待续 测试工程代码示例如需要可留言 索取