我尝试使用谷歌测试框架,但无法看到为什么以下代码:
TEST(MathTest, BelowZeroCandF)
{
EXPECT_DOUBLE_EQ(convertCtoF(-1), 30.2);
}
,其中
double convertCtoF(double c)
{
return 32+1.8*c;
}
失败:
Failure
Value of: -30.20
Actual: -30.199999999999999
Expected: tc.convertCtoF(-1)
Which is: 30.199999999999999
[ FAILED ] MathTest.belowZeroCaboveZeroF (1 ms)
我知道我可以使用EXPECT_NEAR,但不明白为什么以上不起作用......
答案 0 :(得分:2)
(添加答案以完成帖子,因为OP确认了评论中的错误。)
如错误报告中所示,OP意外地在结果中添加了减号,这肯定是错误的。删除拼写错误解决了这个问题。
另外,在GTest和许多其他单元测试框架(JUnit等)中,断言的参数顺序是
EXPECT_DOUBLE_EQ(30.2, convertCtoF(-1));
// ^ ^ actual value
// expected value
否则错误报告将翻转输入描述,就像OP演示的那样。