gtest-断言
斷言
ASSERT_*系列的斷言
當(dāng)檢查失敗時,退出當(dāng)前函數(shù)
EXPECT_*系列的斷言
當(dāng)檢查失敗時,繼續(xù)向下執(zhí)行
布爾值的檢查
| ASSERT_TRUE(condition); | EXPECT_TRUE(condition); | condition is true |
| ASSERT_FALSE(condition); | EXPECT_FALSE(condition); | condition is false |
數(shù)值型數(shù)據(jù)檢查
| 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 |
字符串檢查
| 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 |
返回成功和失敗
直接返回成功: SUCCEED()
返回失敗:
| FAIL() | ADD_FAILURE() |
異常檢查
| ASSERT_THROW(statement, exception_type); | EXPECT_THROW(statement, exception_type); | statement throws an exception of the given type |
| ASSERT_ANY_THROW(statement); | EXPECT_ANY_THROW(statement); | statement throws an exception of any type |
| ASSERT_NO_THROW(statement); | EXPECT_NO_THROW(statement); | statement doesn’t throw any exception |
輸入?yún)?shù)的檢查
失敗的時候回返回詳細(xì)的信息,包括哪個參數(shù)的錯誤
| ASSERT_PRED1(pred1, val1); | EXPECT_PRED1(pred1, val1); | pred1(val1) returns true |
| ASSERT_PRED2(pred2, val1, val2); | EXPECT_PRED2(pred2, val1, val2); | pred2(val1, val2) returns true |
| … | … | … |
如果還是嫌輸出的信息不夠詳細(xì)可以使用如下自定義格式的數(shù)據(jù)
| ASSERT_PRED_FORMAT1(pred_format1, val1);|EXPECT_PRED_FORMAT1(`pred_format1, val1); | pred_format1(val1) is successful | |
| ASSERT_PRED_FORMAT2(pred_format2, val1, val2); | EXPECT_PRED_FORMAT2(pred_format2, val1, val2); | pred_format2(val1, val2) is successful |
浮點數(shù)檢查
| ASSERT_FLOAT_EQ(expected, actual); | EXPECT_FLOAT_EQ(expected, actual); | the two float values are almost equal |
| ASSERT_DOUBLE_EQ(expected, actual); | EXPECT_DOUBLE_EQ(expected, actual); | the two double values are almost equal |
對兩個非常相近的數(shù)檢查
| ASSERT_NEAR(val1, val2, abs_error); | EXPECT_NEAR(val1, val2, abs_error); | the difference between val1 and val2 doesn’t exceed the given absolute error |
類型檢查,類型檢查失敗之后會導(dǎo)致編譯失敗
template <typename T> class FooType { public:void Bar() { testing::StaticAssertTypeEq<int, T>(); } };TEST(TypeAssertionTest, Demo) {FooType<bool> fooType;fooType.Bar(); }參考:
http://code.google.com/p/googletest/wiki/GoogleTestPrimer
http://code.google.com/p/googletest/wiki/GoogleTestAdvancedGuide
總結(jié)
- 上一篇: 【需求工程】需求管理
- 下一篇: Oralce 查看,修改,kill 连