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, ...
#defineEXPECT_EQ(val1,val2)\EXPECT_PRED_FORMAT2(::testing::internal::\ EqHelper<GTEST_IS_NULL_LITERAL_(val1)>::Compare,\ val1,val2) 代码语言:javascript 复制 #defineEXPECT_STREQ(s1,s2)\EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ,s1,s2) 浮点对比断言 在对比数据方面,我们往往...
; } TEST(GeneralTest, PredAssertion) { const int m = 2; const int n = 1; EXPECT_PRED_FORMAT2(AssertEqual, m, n); } // Error message: // m and n (2 and 1) are not equal, as they are 1 apart. 参考 Googletest Primer Advanced googletest Topics 附录 文章中所有代码块的集合 ...
EXPECT_PRED_FORMAT2(pred_format2, val1, val2) 这个断言格式与情况1中*_PRED*类似,FORMAT后跟的数字代表了实际参数的数量。pred_format也是一个返回testing::AssertionResult的函数,但是这个函数有一个标准的表达式: pred_format函数范式 其中exprn代表第n个参数的字符串表达式,Tn valn代表函数实际执行业务需求的类...
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) \
gtest中,断言的宏可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。一个直观的解释就是: 1. ASSERT_* 系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例)。 2. EXPECT_* 系列的断言,当检查点失败时,继续往下执行。 二、示例 //int型比较,预期值:3,实际值:Add(1,2)EXPECT_EQ(3,Add...
EXPECT_PRED_FORMAT1(pred_format1, val1); ASSERT_PRED_FORMAT2(pred_format2, val1, val2); EXPECT_PRED_FORMAT2(pred_format2, val1, val2); 这个要是搞过《离散数学》的可能就比较清楚,不过看过STL的源码的应该也好理解,其实就是有一个处理函数罢了。如果自己认为有更好的解决方式还可以自定义谓词。
3. 使用TEST宏开始一个测试案例,使用EXPECT_*,ASSER_*系列设置检查点。 4. 在Main函数中初始化环境,再使用RUN_ALL_TEST()宏运行测试案例。 优点: 1. 我们的测试案例本身就是一个exe工程,编译之后可以直接运行,非常的方便。 2. 编写测试案例变的非常简单(使用一些简单的宏如TEST),让我们将更多精力花在案例的...