谷歌的测试框架
1 2 3 4 5 6
| EXPECT和ASSERT系列的区别: 1. EXPECT_* 失败时,案例继续往下执行 2. ASSERT_* 失败时,直接在当前函数中返回,当前函数中ASSERT_* 后面的语句将不会执行
可以使用操作符 << 将一些自定义的信息输出,例如: EXPECT_EQ(x, y) << "error" << 代码中的变量
|
数值型数据检查:
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 |
显示返回成功或者失败: 直接返回成功:SUCCESS()
Fatal assertion |
Nonfatal assertion |
FAIL(); |
ADD_FAILURE(); |