玩转Google开源C++单元测试框架GoogleTest系列(gtest)之二-断言.docx
上传人:sy****28 上传时间:2024-09-14 格式:DOCX 页数:7 大小:21KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

玩转Google开源C++单元测试框架GoogleTest系列(gtest)之二-断言.docx

玩转Google开源C++单元测试框架GoogleTest系列(gtest)之二-断言.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

HYPERLINK"http://www.cnblogs.com/coderzh/archive/2009/04/06/1430364.html"玩转Google开源C++单元测试框架GoogleTest系列(gtest)之二-断言一、前言这篇文章主要总结gtest中的所有断言相关的宏。gtest中,断言的宏可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。一个直观的解释就是:1.ASSERT_*系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例)。2.EXPECT_*系列的断言,当检查点失败时,继续往下执行。二、示例//int型比较,预期值:3,实际值:Add(1,2)EXPECT_EQ(3,Add(1,2))//假如你的Add(1,2)结果为4的话,会在结果中输出:g:\myproject\c++\gtestdemo\gtestdemo\gtestdemo.cpp(16):error:Valueof:Add(1,2)Actual:4Expected:3如果是将结果输出到xml里的话,将输出:(关于将结果输出为xml,见:HYPERLINK"http://www.cnblogs.com/coderzh/archive/2009/04/10/1432789.html"http://www.cnblogs.com/coderzh/archive/2009/04/10/1432789.html)<testcasename="Demo"status="run"time="0"classname="AddTest"><failuremessage="Valueof:Add(1,2)Actual:4Expected:3"type=""><![CDATA[g:\myproject\c++\gtestdemo\gtestdemo\gtestdemo.cpp:16Valueof:Add(1,2)Actual:4Expected:3]]></failure></testcase>如果你对自动输出的出错信息不满意的话,你还可以通过操作符<<将一些自定义的信息输出,通常,这对于调试或是对一些检查点的补充说明来说,非常有用!下面举个例子:如果不使用<<操作符自定义输出的话:for(inti=0;i<x.size();++i){EXPECT_EQ(x[i],y[i]);}看到的结果将是这样的,你根本不知道出错时i等于几:g:\myproject\c++\gtestdemo\gtestdemo\gtestdemo.cpp(25):error:Valueof:y[i]Actual:4Expected:x[i]Whichis:3如果使用<<操作符将一些重要信息输出的话:for(inti=0;i<x.size();++i){EXPECT_EQ(x[i],y[i])<<"Vectorsxandydifferatindex"<<i;}从输出结果中就可以定位到在i=2时出现了错误。这样的输出结果看起来更加有用,容易理解:g:\myproject\c++\gtestdemo\gtestdemo\gtestdemo.cpp(25):error:Valueof:y[i]Actual:4Expected:x[i]Whichis:3Vectorsxandydifferatindex2三、布尔值检查FatalassertionNonfatalassertionVerifiesASSERT_TRUE(condition);EXPECT_TRUE(condition);conditionistrueASSERT_FALSE(condition);EXPECT_FALSE(condition);conditionisfalse四、数值型数据检查FatalassertionNonfatalassertionVerifiesASSERT_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五、字符串检查Fa