Google 浮点数不相等的测试检查
Google Test Check for Float Not Equality
是否期望浮点值不等于第二个值?
例如 EXPECT_FLOAT_EQ(val1,val2)
的反义词
我认为 GTest 没有此功能,他们在 documentation
中进行了解释
Some floating-point operations are useful, but not that often used. In order to avoid an explosion of new macros, we provide them as predicate-format functions that can be used in predicate assertion macros (e.g. EXPECT_PRED_FORMAT2, etc).
您可以按照@idclev 463035818 的建议定义谓词,并将其传递到EXPECT_PRED_FORMAT2(pred, val1, val2)
。谓词必须符合签名:
testing::AssertionResult pred(const char* expr1, const char* expr2,
double val1, double val2);
其中 expr1
和 expr2
是将在断言消息中使用的浮点参数的字符串表示形式。
您可以使用 Google Mock 的浮点数 matchers。它们可以很容易地组合成更复杂的断言:
EXPECT_THAT(val1, Not(DoubleEq(val2)))
是否期望浮点值不等于第二个值?
例如 EXPECT_FLOAT_EQ(val1,val2)
的反义词我认为 GTest 没有此功能,他们在 documentation
中进行了解释Some floating-point operations are useful, but not that often used. In order to avoid an explosion of new macros, we provide them as predicate-format functions that can be used in predicate assertion macros (e.g. EXPECT_PRED_FORMAT2, etc).
您可以按照@idclev 463035818 的建议定义谓词,并将其传递到EXPECT_PRED_FORMAT2(pred, val1, val2)
。谓词必须符合签名:
testing::AssertionResult pred(const char* expr1, const char* expr2,
double val1, double val2);
其中 expr1
和 expr2
是将在断言消息中使用的浮点参数的字符串表示形式。
您可以使用 Google Mock 的浮点数 matchers。它们可以很容易地组合成更复杂的断言:
EXPECT_THAT(val1, Not(DoubleEq(val2)))