20200507_googletest
每日小知识
gtest是一个跨平台的C++测试用例框架,由谷歌公司发布。
一、相关术语
原计划是写一个测试strcpy的用例的,但发现googletest用起来需要花一些功夫,所以本篇就先整理googletest的内容。
-
googletest
C++测试用例框架。 -
版本
本文使用googletest版本【1.8.1】。
VS使用VS2017,社区版本,15.9.13。
二、使用方法
使用gtest有两种方式,一种是编译动态库,一种是直接加载源代码。本文直接加载源代码编译。
1、下载googletest
在https://github.com/google/googletest/releases这里找v1.8.1,然后下载zip包,因为我是windows系统。
2、新建空白工程
使用vs2017新建空白控制台工程googletest_demo1.sln。
解压zip包到目录googletest-release-1.8.1,这里我将该目录与sln保持同级。
3、设置包含目录
设置VS头文件包含目录:
$(SolutionDir)\googletest-release-1.8.1\googletest\include;$(SolutionDir)\googletest-release-1.8.1\googletest;
添加googletest/src中所有文件,然后移除【gtest-all.cc】【gtest_main.cc】。
4、编写main.cpp代码
#include "gtest/gtest.h"
int add_function(int a, int b);
TEST(TestCaseName, TestName)
{
EXPECT_EQ(1, add_function(1, 2)); //错误演示
EXPECT_EQ(4, add_function(2, 2)); //正确演示
}
int main(int argc, char* argv[])
{
int iRet = 0;
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
int add_function(int a, int b)
{
return a + b;
}
5、运行
打开cmd,在控制台运行该程序,即可看到运行结果。
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from TestCaseName
[ RUN ] TestCaseName.TestName
d:\01_tencent_git\00_csdndocs20200325\csdn_blog\2020\05\07_googletest\demo\googletest_demo1\googletest_demo1\demo1_main.cpp(7): error: Expected equality of these values:
1
add_function(1, 2)
Which is: 3
[ FAILED ] TestCaseName.TestName (1 ms)
[----------] 1 test from TestCaseName (2 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (6 ms total)
[ PASSED ] 0 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] TestCaseName.TestName
1 FAILED TEST
本文归类
建议归类到【C++】。
明日计划
标题:写一个测试strcpy的测试用例
小知识:VS2017为什么没有使用gtest1.10以上版本。
参考文献:
GTest使用教程(一)-- 编译,安装GTest_会会会飞的鱼
https://blog.csdn.net/W_Y2010/article/details/84674115
今日收藏:
googletest
https://github.com/google/googletest