2

我尝试在浮点数上使用 assertEquals 方法,eclipse 说该方法已折旧。因此,以下替代方案是否可以接受?

Assert.assertTrue("Total does not match expected total :",
                                            receipt.getTotal() == 32.19f);

是否有特定原因不能使用 assertEquals 来比较测试中的两个浮点数或双精度数?

一般来说,在 JUnit 中断言两个十进制值相等的最佳方法是什么。我正在使用 JUnit 的 4.10 版本

4

1 回答 1

4

通常,您可以将原始类型与 == 进行比较,但对于浮点值,两个值可以看起来相同(当格式化为字符串时)但是是两个不同的值。您应该使用assertEquals(expected, actual, delta)。请参阅 JUnit 的答案: assertEquals for double values

因为双精度(和浮点)计算不一定准确,所以您可以使用 delta 进行比较(实际上是误差范围)。

于 2012-08-05T13:28:51.773 回答