我想做的一个例子:
double delta = 0.000001d;
Number myNumber = resultOfSomeTestExecution();
Assert.assertEquals(5, myNumber, delta);
我想在合理的增量间隔内断言结果是5,或者至少接近5,但我不关心它是Integer,Long,Double,BigDecimal还是其他什么。是否有可以执行此操作的断言库?
答案 0 :(得分:3)
每个Number
实例都有一个doubleValue()
方法,您可以将其应用于测试执行的结果。
double delta = 0.000001d;
Number myNumber = resultOfSomeTestExecution();
Assert.assertEquals(5, myNumber.doubleValue(), delta);
Number#doubleValue()
是一个有效的选择,因为在处理整数和浮点数时不会失去精度。
答案 1 :(得分:1)
在myNumber上使用.doubleValue() - 它会起作用:
Assert.assertEquals(5,myNumber.doubleValue(),delta);