是否有任何用于 JUnit 或 Java 实践的工具允许准确测试“小于”和“大于”等边界案例测试?
例如,将货币值四舍五入到最接近的美分。测试 0.005 到 0.01 很容易。测试 <0.005 舍入不是(严格来说)。
我显然可以测试像 0.0049 这样的任意值,但这并不能保证像 0.00499 这样的另一个值不会被四舍五入。对于正在执行的环境,是否有一个常数或任何保证最接近“小于”或“大于”的可能表示的数值?
Math.nextAfter (0.005, 0)
?
返回第二个参数方向上与第一个参数相邻的浮点数。如果两个参数比较相等,则返回第二个参数。
http://download.oracle.com/javase/6/docs/api/java/lang/Math.html#nextAfter%28double,%20double%29
可能,但这取决于许多因素。对于货币值,您应该始终使用BigDecimal
它,因为它可以让您完全控制精度(例如double
,float
即使对于简单的值也会给出奇怪的结果)