GoogleTest单元测试框架

早就想将这半年使用GoogleTest的心得体会写下来,以做备忘录。总算在这忙里偷闲的时间,将其记录下来。

 

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

 

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 assertion Nonfatal assertion Verifies
ASSERT_TRUE( condition ) ; EXPECT_TRUE( condition ) ; condition is true
ASSERT_FALSE( condition ) ; EXPECT_FALSE( condition ) ; condition is false


数值型数据检查

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


字符串检查

Fatal assertion Nonfatal assertion Verifies
ASSERT_STREQ( expected_str , actual_str ); EXPECT_STREQ( expected_str , actual_str ); the two C strings have the same content
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

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

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

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Google Test单元测试,你可以在C++项目中使用Google Test框架来编写和运行单元测试。 首先,你需要在项目中包含Google Test库。你可以从Google Test的官方GitHub仓库下载最新版本的源代码,并将其添加到你的项目中。 在编写单元测试之前,你需要创建一个测试文件。这个文件应该包含一个或多个测试用例,每个测试用例都是一个函数。你可以使用Google Test提供的宏来定义和运行测试用例。 一个简单的示例代码如下: ```c++ #include <gtest/gtest.h> // 定义一个测试用例 TEST(ExampleTest, Addition) { int a = 2; int b = 3; int result = a + b; EXPECT_EQ(result, 5); } // 定义另一个测试用例 TEST(ExampleTest, Subtraction) { int a = 5; int b = 3; int result = a - b; EXPECT_EQ(result, 2); } int main(int argc, char** argv) { // 初始化 Google Test 框架 ::testing::InitGoogleTest(&argc, argv); // 运行所有的测试用例 return RUN_ALL_TESTS(); } ``` 在这个例子中,我们定义了两个测试用例:Addition和Subtraction。每个测试用例都包含一些断言,用于验证预期结果和实际结果是否相等。在main函数中,我们初始化Google Test框架并运行所有的测试用例。 要编译和运行这个测试文件,你需要将Google Test库链接到你的项目中。具体的编译和链接过程可能因你使用的开发环境而有所不同。 当你运行这个测试文件时,Google Test将会执行所有的测试用例,并输出测试结果。如果所有的断言都通过了,测试将会被标记为通过;否则,测试将会被标记为失败,并显示详细的错误信息。 这只是一个简单的示例,Google Test还提供了很多其他的功能和特性,例如测试夹具、参数化测试、测试报告等。你可以查阅Google Test的官方文档以获取更多信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值