GoogleTest单元测试框架

来源:互联网 发布:小幽灵网络论坛 编辑:程序博客网 时间:2024/05/17 23:36

不想直接就写我认为的重点和难点的位置。还是从基础开始说起吧。

 

GoogleTest是Google开发的一套单元测试框架。能够在不同平台上(Windows,Linux,Mac OS X,Cygwin,Windows CE和Symbian)为C++编写的程序做单元测试。

 

它是基于xUnit架构(如JUnit)的测试框架,支持自动发现测试,丰富的断言集及XML的测试报告。

 

gtest的官方网站是:http://code.google.com/p/googletest/

官方网站有一个wiki,能够获取到你所需的所有的指引信息
http://code.google.com/p/googletest/wiki/DevGuide

http://code.google.com/p/googletest/wiki/AdvancedGuide

 

另外,有一个中文Blog介绍的比较完善:

http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html

 

下面是一个简单的示例:

 

 

“Google包装了一系列EXPECT_* 和ASSERT_*的宏,而EXPECT系列和ASSERT系列的区别是:

1. EXPECT_* 失败时,案例继续往下执行。

2. ASSERT_* 失败时,案例终止运行。

 

布尔值检查

Fatal assertionNonfatal assertionVerifiesASSERT_TRUE( condition) ;EXPECT_TRUE( condition) ;condition is trueASSERT_FALSE( condition) ;EXPECT_FALSE( condition) ;condition is false


数值型数据检查

Fatal assertionNonfatal assertionVerifiesASSERT_EQ( expected , actual );EXPECT_EQ( expected , actual );expected == actualASSERT_NE( val1 ,val2 ); EXPECT_NE( val1 ,val2 ); val1 != val2ASSERT_LT( val1 ,val2 ); EXPECT_LT( val1 ,val2 ); val1 < val2ASSERT_LE( val1 ,val2 ); EXPECT_LE( val1 ,val2 ); val1 <= val2ASSERT_GT( val1 ,val2 ); EXPECT_GT( val1 ,val2 ); val1 > val2ASSERT_GE( val1 ,val2 ); EXPECT_GE( val1 ,val2 ); val1 >= val2


字符串检查

Fatal assertionNonfatal assertionVerifiesASSERT_STREQ( expected_str, actual_str );EXPECT_STREQ( expected_str, actual_str );the two C strings have the same contentASSERT_STRNE( str1 , str2 );EXPECT_STRNE( str1 , str2 );the two C strings have different contentASSERT_STRCASEEQ( expected_str, actual_str );EXPECT_STRCASEEQ( expected_str, actual_str );the two C strings have the same content, ignoring caseASSERT_STRCASENE( str1, str2 );EXPECT_STRCASENE( str1, str2 );the two C strings have different content, ignoring case

*STREQ*和*STRNE*同时支持char*和wchar_t*类型的,*STRCASEEQ*和*STRCASENE*只接收char*”

——以上引号内部引用自“http://www.cnblogs.com/coderzh/archive/2009/04/06/1430364.html”

原创粉丝点击