由于浮点混淆,确保测试用例失败

时间:2018-03-20 12:49:15

标签: java

我正在运行一个放心的测试用例,但它失败了以下错误:

  

java.lang.AssertionError:1期望失败。 JSON路径   zero_base.herebyBreakdown不匹配。预期:使用toString()   “[{value = -365305.5f,value = -75133.81f,value = 79750.484f,value = 0.0f}]”   实际:[{value = -365305.5,值= -75133.81,值= 79750.484,值= 0.0}]

同时,来自帖子的实际结果是:

{
    "value": -365305.5066
},
{
    "value": -75133.816
},
{
    "value": 79750.4868
},
{
    "value": 0
}

有人可以帮帮我吧!

1 个答案:

答案 0 :(得分:3)

看起来你将浮动比较为双打。

请确保比较值的类型相同,或者在浮点数的情况下更好,您应该考虑到结果数字可能不相等 - 并将它们与一些误差范围进行比较。

(例如在restassured / hamcrest中有类似“closeTo”,org.hamcrest.number.IsCloseTo,例如:

assertThat(actual, is(closeTo(6, 0.5)));