EXPECT_PRED_FORMAT3(AssertFoo,3,6,2); } 失败时,输出信息: error: 3 和 6 的最大公约数应该是:3 而不是:2 是不是更温馨呢,呵呵。 九、浮点型检查 对相近的两个数比较: 同时,还可以使用: EXPECT_PRED_FORMAT2(testing::FloatLE, val1, val2); EXPECT_PRED_FORMAT2(testing::DoubleLE, val1, ...
EXPECT_PRED_FORMAT2(AssertMutuallyPrime, b, c); 会生成消息 b and c (4 and 10) are not mutually prime, as they have a common divisor 2. 事实上前面引入的许多断言都是(EXPECT|ASSERT)_PRED_FORMAT*的特例,他们中大多数也是使用(EXPECT|ASSERT)_PRED_FORMAT*.定义的。 九、浮点型检查 比较浮点数...
EXPECT_PRED_FORMAT3(AssertFoo,3,6,2); } 失败时,输出信息: error: 3 和 6 的最大公约数应该是:3 而不是:2 是不是更温馨呢,呵呵。 九、浮点型检查 对相近的两个数比较: 同时,还可以使用: EXPECT_PRED_FORMAT2(testing::FloatLE, val1, val2); EXPECT_PRED_FORMAT2(testing::DoubleLE, val1, ...
; } TEST(GeneralTest, PredAssertion) { const int m = 1; const int n = 1; EXPECT_PRED2(equal, m, n); EXPECT_PRED_FORMAT2(AssertEqual, m, n); } } // namespace // 大多数情况下,我们不需要修改此主函数,显得有些多余 // gtest提供了方法让我们可以删除此主函数,只需在链接时 // ...
EXPECT_PRED_FORMAT2(::testing::internal:: \ EqHelper<GTEST_IS_NULL_LITERAL_(val1)>::Compare, \ val1, val2) [cpp]view plaincopy print? // Binary predicate assertion macros. #define EXPECT_PRED_FORMAT2(pred_format, v1, v2) \
val1,val2) 代码语言:javascript 复制 #defineEXPECT_EQ(val1,val2)\EXPECT_PRED_FORMAT2(::testing::internal::\ EqHelper<GTEST_IS_NULL_LITERAL_(val1)>::Compare,\ val1,val2) 代码语言:javascript 复制 // Binary predicate assertion macros.#defineEXPECT_PRED_FORMAT2(pred_format,v1,v2)\GTEST_...
gtest中,断言的宏可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。一个直观的解释就是: 1. ASSERT_* 系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例)。 2. EXPECT_* 系列的断言,当检查点失败时,继续往下执行。 二、示例 //int型比较,预期值:3,实际值:Add(1,2)EXPECT_EQ(3,Add...
EXPECT_PRED1的pred_format函数 总结一下方法1属于方法3的进一步封装,由框架内部实现了错误信息的输出。方法2给出了方法3的实现方式(此类问题普遍的实现方式):本质上都是将一个任意方法封装成一个返回AssertionResult的函数。同时需要注意的是标准版本的gtest只提供了参数数量最多为5的宏,如果需要更多的参数需要自行...
ASSERT_PRED_FORMAT1(pred_format1, val1); EXPECT_PRED_FORMAT1(pred_format1, val1); ASSERT_PRED_FORMAT2(pred_format2, val1, val2); EXPECT_PRED_FORMAT2(pred_format2, val1, val2); 这个要是搞过《离散数学》的可能就比较清楚,不过看过STL的源码的应该也好理解,其实就是有一个处理函数罢了。如...
GTEST_FATAL_FAILURE_和GTEST_NONFATAL_FAILURE_都将在出错时被调用,如EXPECT_EQ在内部是这么调用的 [cpp]view plaincopy print? #define EXPECT_PRED_FORMAT2(pred_format, v1, v2) \ GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_NONFATAL_FAILURE_) ...