我需要比较两个值之间的断言:一个字符串,另一个是浮动 所以我转换为浮动然后尝试拨打assertEquals(val1,val2)
绳子,但这个没有被授权,我猜测,assertEquals
不接受float作为参数。JUnit断言:使花车
在这种情况下,我的解决方案是什么?
我需要比较两个值之间的断言:一个字符串,另一个是浮动 所以我转换为浮动然后尝试拨打assertEquals(val1,val2)
绳子,但这个没有被授权,我猜测,assertEquals
不接受float作为参数。JUnit断言:使花车
在这种情况下,我的解决方案是什么?
你必须为浮动提供了一个三角洲断言:
Assert.assertEquals(expected, actual, 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。
我建议使用0.0f(包括带粗体文本的答案编辑)而不是其他语言,因为它更具语义。我不知道这个问题,0.0f可能导致我理解什么是打算。以不赞成的或“不是JUnit”的方式,它就不太明显。 – ElMesa