JUnit断言:在浮点数之间进行断言

时间:2011-09-26 11:18:43

标签: java junit junit4

我需要比较两个值:一个是字符串,另一个是float 所以我将字符串转换为float然后尝试调用assertEquals(val1,val2)但是这没有被授权,我想assertEquals不接受float作为参数。

在这种情况下,我的解决方案是什么?

2 个答案:

答案 0 :(得分:79)

您必须为Floats的断言提供增量:

Assert.assertEquals(expected, actual, delta)

而del​​ta是预期值与实际值之间的最大差值(delta),两个数字仍被视为相等。

Assert.assertEquals(0.0012f, 0.0014f, 0.0002); // true
Assert.assertEquals(0.0012f, 0.0014f, 0.0001); //false

答案 1 :(得分:7)

delta值为0.0f也有效,所以对于老式的" =="比较(小心使用!),你可以写

Assert.assertEquals(expected, actual, 0.0f);

而不是

Assert.assertEquals(expected, actual); // Deprecated
Assert.assertTrue(expected == actual); // Not JUnit

我喜欢JUnit确保您真正考虑过" delta"在真正微不足道的情况下应该只有0.0f。

相关问题