EXPECT_FLOAT_EQ(expected, actual):(float)expected == actual EXPECT_DOUBLE_EQ(expected, actual):(double)expected == actual EXPECT_NEAR(var1, var2, tol):abs(var1 - var2) <= tol 当判断浮点数时,推荐使用后三个。 3、大于小于 EXPECT_LT(var1, var2):var1 < var2 EXPECT_GT(var1, var2...
我们再查看下二进制对比系列宏的ASSERT_*和EXPECT_*的区别(以EQ为例) 代码语言:javascript 复制 #defineASSERT_EQ(val1,val2)GTEST_ASSERT_EQ(val1,val2)#defineGTEST_ASSERT_EQ(val1,val2)\ASSERT_PRED_FORMAT2(::testing::internal::\ EqHelper<GTEST_IS_NULL_LITERAL_(val1)>::Compare,\ val1,val2...
实际上,大多数确实是使用(EXPECT | ASSERT)_PRED_FORMAT *定义的。 浮点数比较 比较浮点数很棘手。由于舍入误差,两个浮点将很难完全匹配。因此ASSERT_EQ的比较通常不起作用。由于浮点具有十分广泛的取值范围,没有单个固定的错误界限能够一直有效。最好以固定的相对误差范围进行比较,除了那些接近0的值,因为浮点数在...
=actualEXPECT_FLOAT_EQ(expected,actual):(float)expected==actualEXPECT_DOUBLE_EQ(expected,actual):(double)expected==actualEXPECT_NEAR(var1,var2,tol):abs(var1-var2)<=tol 当判断浮点数时,推荐使用后三个。 3、大于小于 EXPECT_LT(var1,var2):var1var2EXPECT_LE(var1,var2):var1<=var2EXPECT_G...
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 对相近的两个数比较: Fatal assertionNonfatal assertionVerifies ASSERT_NEAR(...
ASSERT_NO_THROW(语句); EXPECT_NO_THROW(语句); 语句不引发任何异常5、浮点型检查致命断言非致命断言验证 ASSERT_FLOAT_EQ(预期,实际)); EXPECT_FLOAT_EQ(预期,实际)); 两个浮点值几乎相等 ASSERT_DOUBLE_EQ(预期,实际)); EXPECT_DOUBLE_EQ(预期,实际)); 两个双精度值几乎相等对...
ASSERT_FLOAT_EQ和ASSERT_DOUBLE_EQ是在比较的基础上允许一定的浮点数精度误差值。如果你需要比较两个浮点数,请使用对应的浮点数类型比较宏,而不要直接使用ASSERT_EQ; 4.6 ASSERT_GE/LE 注意,大小写比较都是左和右直接按顺序比较的,比如GE是判断左边是否大于右边(不要搞反顺序了) TEST(EXPTEST, EXPTEST_GE) ...
EXPECT_EQ(4, st.pop());//使用Google Test宏进行测试(非致命断言) } //测试实例2 TEST(testStack, testAll) { MyStack st; st.push(9); st.push(28); int val = st.pop(); EXPECT_EQ(28, val);//28等于val则测试通过(非致命断言) ...
class ProcessTest : public ::testing::TestWithParam, public Process{};TEST_P(ProcessTest,BasicTest){CallArgs args = GetParam();x = args.pramx();EXPECT_FLOAT_EQ(process(args.prama(),args.pramb()),args.result());} 3.2保护方法
TEST_P(ProcessTestWithTestP,BasicTest){CallArgs args=GetParam();Process p;x=args.pramx();EXPECT_FLOAT_EQ(p.process(args.prama(),args.pramb()),args.result());} 2.2静态方法 修改process.h文件。 代码语言:javascript 复制 //process.h#ifndefPROCESS_H#definePROCESS_Hextern int x;classProcess...