在 JUnit 测试中,如何断言两个数字相等而不考虑它们的类型?

Bas*_*igt 3 java junit

我想做的一个例子:

double delta = 0.000001d;
Number myNumber = resultOfSomeTestExecution();
Assert.assertEquals(5, myNumber, delta);
Run Code Online (Sandbox Code Playgroud)

我想断言结果是 5,或者在合理的增量间隔内至少接近 5,但我不在乎它是 Integer、Long、Double、BigDecimal 还是其他类型。有没有可以做到这一点的断言库?

Kon*_*kov 5

每个Number实例都有一个doubleValue()方法,您可以将其应用于测试执行的结果。

double delta = 0.000001d;
Number myNumber = resultOfSomeTestExecution();
Assert.assertEquals(5, myNumber.doubleValue(), delta);
Run Code Online (Sandbox Code Playgroud)

Number#doubleValue()是一个有效的选择,因为在处理整数和浮点数时不会丢失精度。

  • 我想你的意思是逗号,而不是加号!在其他情况下,代码无效并使用已弃用的方法。 (2认同)