0

我尝试使用 google 测试框架,但看不到以下代码的原因:

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,但不明白为什么上述方法不起作用......

4

1 回答 1

5

(添加答案以完成帖子,因为 OP 确认了评论中的错误。)

如错误报告所示,OP不小心在结果中添加了一个减号,这肯定是错误的。删除错字解决了这个问题。

此外,在 GTest 和许多其他单元测试框架(JUnit 等)中,断言的参数顺序是

EXPECT_DOUBLE_EQ(30.2, convertCtoF(-1));
//               ^     ^ actual value
//               expected value

否则错误报告将翻转输入描述,就像 OP 演示的那样。

于 2012-09-07T07:44:29.773 回答