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);

其中 expr1expr2 是将在断言消息中使用的浮点参数的字符串表示形式。

您可以使用 Google Mock 的浮点数 matchers。它们可以很容易地组合成更复杂的断言:

EXPECT_THAT(val1, Not(DoubleEq(val2)))