GoogleTest – C++测试框架简介

作者: admin 分类: 软件测试 发布时间: 2013-04-17 17:29 ė3,190 浏览数 6没有评论
文章转自王牌软件
站长推荐: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



只回答业务咨询点击这里给我发消息 点击这里给我发消息

王牌软件,兼职软件设计,软件修改,毕业设计。

本文出自 王牌软件,转载时请注明出处及相应链接。

本文永久链接: http://www.softwareace.cn/?p=361

0

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">


Ɣ回顶部

无觅相关文章插件,快速提升流量