GoogleTest – C++测试框架简介
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)
选择GTest的原因:
(1)GTest可以跨平台,支持Windows、Linux、Mac OS X等。
(2)GTest的组织形式符合预期的PPN自动化代码结构。TEST()支持单独测试用例,TEST_F()支持多个测试用例之间共享数据,支持Setup()初始化和TearDown()数据销毁。
(3)GTest仅需要TEST()和TEST_F()两个宏,比较简洁。相比CppUnit的mfc输出需要修改好些地方,头文件以及实现文件均需要修改,并且在不同的地方使用不同的宏名称,需要包含不同的头文件,比较繁琐。
(4)GTest的运行结果直观,绿色表示Pass,红色表示Fail。如图1:
(5)编译连接成功之后可以直接运行可执行文件,开始执行测试脚本。测试结果支持生成xml。
安装和部署
官方下载地址:http://code.google.com/p/googletest/
[1]编译:下载包解压之后,Windows环境通过VC++打开msvc目录下gtest.sln项目,编译gtest子项目(Release/Debug模式),编译成功会在msvc\gtest\Release(或Debug)目录下生成gtest.lib(或gtestd.lib)文件。
[2]设置:除了include目录和编译生成的gtest.lib文件,其他都可以删除。测试工程”附加包含目录”中添加gtest的include目录,如图2:
“附加依赖项”中添加gtest.lib文件,如图3:
[3]使用:至此gtest安装部署完成。测试代码中添加#include “gtest/gtest.h”,即可使用GTest了。
使用介绍
GTest提供了两种断言形式,一种以ASSERT_开头,另一种以EXPECT_开头,它们的区别是ASSERT_*一旦失败立马退出,而EXPECT_*还能继续下去。
各种类型断言如下(摘自官网):
Basic Assertions(断言真、假值)
Fatal assertion | Nonfatal assertion | Verifies |
ASSERT_TRUE(condition); | EXPECT_TRUE(condition); | conditionis true |
ASSERT_FALSE(condition); | EXPECT_FALSE(condition); | conditionis false |
Binary Comparison(断言数值比较)
Fatal assertion | Nonfatal assertion | Verifies |
ASSERT_EQ(expected,actual); | EXPECT_EQ(expected,actual); | expected==actual |
ASSERT_NE(val1,val2); | EXPECT_NE(val1,val2); | val1!=val2 |
ASSERT_LT(val1,val2); | EXPECT_LT(val1,val2); | val1<val2 |
ASSERT_LE(val1,val2); | EXPECT_LE(val1,val2); | val1<=val2 |
ASSERT_GT(val1,val2); | EXPECT_GT(val1,val2); | val1>val2 |
ASSERT_GE(val1,val2); | EXPECT_GE(val1,val2); | val1>=val2 |
String Comparison(字符串)
Fatal assertion | Nonfatal assertion | Verifies |
ASSERT_STRNE(str1,str2); | EXPECT_STRNE(str1,str2); | the two C strings have different
content |
ASSERT_STRCASEEQ
(expected_str,actual_str); |
EXPECT_STRCASEEQ
(expected_str,actual_str); |
the two C strings have the same
content, ignoring case |
ASSERT_STRCASENE(str1,str2); | EXPECT_STRCASENE(str1,str2); | the two C strings have different
content, ignoring case |
这里介绍了GTest的TEST宏和断言使用方法:
http://code.google.com/p/googletest/wiki/V1_6_Primer#Simple_Tests
这里介绍了如何调用GTest开始测试:
http://code.google.com/p/googletest/wiki/V1_6_Primer#Invoking_the_Tests
学习日记,兼职软件设计,软件修改,毕业设计。
本文出自 学习日记,转载时请注明出处及相应链接。
本文永久链接: https://www.softwareace.cn/?p=361