JUnit 断言:在浮点数之间做出断言
我需要比较两个值:一个是字符串,另一个是浮点型,所以我将字符串转换为浮点型,然后尝试调用,但这不是授权的,我猜不接受浮点数作为参数。assertEquals(val1,val2)
assertEquals
在这种情况下,我的解决方案是什么?
我需要比较两个值:一个是字符串,另一个是浮点型,所以我将字符串转换为浮点型,然后尝试调用,但这不是授权的,我猜不接受浮点数作为参数。assertEquals(val1,val2)
assertEquals
在这种情况下,我的解决方案是什么?
您必须为 Floats 的断言提供一个增量:
Assert.assertEquals(expected, actual, delta)
而 delta 是预期和实际之间的最大差值(delta),两个数字仍然被视为相等。
Assert.assertEquals(0.0012f, 0.0014f, 0.0002); // true
Assert.assertEquals(0.0012f, 0.0014f, 0.0001); //false
0.0f的增量值也可以,因此对于老式的“==”比较(小心使用!),您可以编写
Assert.assertEquals(expected, actual, 0.0f);
而不是
Assert.assertEquals(expected, actual); // Deprecated
Assert.assertTrue(expected == actual); // Not JUnit
我喜欢JUnit确保你真的考虑过“delta”的方式,在非常微不足道的情况下,它应该只有0.0f。