lol*_*ola 37 java junit junit4
我需要比较两个值:一个是字符串,另一个是浮点数,所以我将字符串转换为float然后尝试调用assertEquals(val1,val2)但是这没有被授权,我猜assertEquals不会接受float作为参数.
在这种情况下,我的解决方案是什么?
oer*_*ers 81
您必须为Floats的断言提供增量:
Assert.assertEquals(expected, actual, delta)
Run Code Online (Sandbox Code Playgroud)
而delta是预期值与实际值之间的最大差值(delta),两个数值仍被视为相等.
Assert.assertEquals(0.0012f, 0.0014f, 0.0002); // true
Assert.assertEquals(0.0012f, 0.0014f, 0.0001); //false
Run Code Online (Sandbox Code Playgroud)
delta值为0.0f也有效,所以对于老式的"=="比较(小心使用!),你可以写
Assert.assertEquals(expected, actual, 0.0f);
Run Code Online (Sandbox Code Playgroud)
代替
Assert.assertEquals(expected, actual); // Deprecated
Assert.assertTrue(expected == actual); // Not JUnit
Run Code Online (Sandbox Code Playgroud)
我喜欢JUnit确保你真正想到的"三角洲"的方式,它在真正无关紧要的情况下应该只有0.0f.
| 归档时间: |
|
| 查看次数: |
33871 次 |
| 最近记录: |