注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

GoogleTest - C++测试框架简介  

来自杨沸   2011-11-24 15:47:30|  分类: 自动化测试 |举报 |字号 订阅

  下载LOFTER 我的照片书  |

选择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:

GoogleTest - C++测试框架简介 - 网易杭州QA - 网易杭州 QA Team

(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:

GoogleTest - C++测试框架简介 - 网易杭州QA - 网易杭州 QA Team
 

"附加依赖项"中添加gtest.lib文件,如图3:

GoogleTest - C++测试框架简介 - 网易杭州QA - 网易杭州 QA Team
 

[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

  评论这张
 
阅读(863)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016