当前位置: 首页 > 知识库问答 >
问题:

为什么在JUnit5中不再推荐assertEquals(double,double)?

傅振濂
2023-03-14

为什么在JUnit5中不再推荐assertEquals(double,double)?

共有1个答案

董光霁
2023-03-14

Jupiter有两种方法,一种是断言方法,用于精确比较两个double,另一种是将它们与给定的delta进行比较。如果涉及任何可能带来舍入误差的计算,通常需要后者。然而,有时候,你需要确保计算结果准确;这时,ˋassertEquals(double,double)ˋ就派上了用场。

使用这种方法的危险在于,人们可能会混淆这两个用例,使用精确比较,而增量比较是更好的选择。JUnit4的设计者认为这种风险非常危险,足以引导用户远离它。朱庇特的开发者做出了不同的判断。

 类似资料:
  • 问题内容: 我想知道为什么不推荐使用。 我曾经使用过JUnit 4.11。 下面是我的代码: 返回一个双精度值。 有什么事吗 问题答案: 由于double的精度问题而已弃用。 如果您注意到,还有另一种允许精度损失的方法。 JavaDoc: 断言两个双打等于正增量内。如果不是,则会引发AssertionError。如果期望值是无穷大,则将忽略增量值.NaN被视为相等:通过 … delta-期望值与实

  • 我想知道为什么不推荐使用。 我使用了导入静态组织。朱尼特。明确肯定资产质量 我使用了JUnit 4.11。 下面是我的代码: 返回一个双倍值。 有什么可能是错的?

  • 问题内容: 我只是想知道为什么现在认为mime_content_type()已被弃用。 这种确定mime类型的方法比替换Fileinfo功能要容易得多。 问题答案: 我猜这是因为Fileinfo可以返回有关files的更多信息。 编辑:这是一个替代黑客:

  • http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#template-layout医生说: 上面的代码定义了一个名为copy的片段,我们可以使用th:insert或th:replace属性(以及th:include,尽管自Thymeleaf 3.0以来不再推荐使用它)轻松地将其包含在主页中。 我个人发现是实现模板的唯一可能方

  • 我以前从未想过,只有我使用了方法返回字符数组,并且我看到了方法是不推荐的。但现在我想,为什么这个方法被否决了?。

  • 问题内容: 我进行了一个junit测试,使用以下命令声明了两个Double对象: 很好,然后我决定将其更改为使用原始double,除非您也提供了增量,否则该结果被弃用了。 所以我想知道在assertEquals中使用Double对象还是原始类型有什么区别?为什么不使用不带增量的对象,但不推荐使用不带增量的基元呢?Java是否在后台执行了已经考虑了默认增量值的操作? 谢谢。 问题答案: 没有断言方法