Java Assert Double 是 NaN

标签 java junit assert nan

<分区>

我试图断言我的替身是 NaN。 这是一个代码片段:

private Double calculateIt(String input){...}

assertEquals(Double.NaN, calculateIt("input text"));

代码无法编译,Double.NaN 被定义为原语

public static final double NaN = 0.0d / 0.0;

为了使断言有效,我用 Double 对象包装了 NaN。

assertEquals(new Double(Double.NaN), calculateIt("input text"));

有没有更短的方法来做到这一点?

最佳答案

你可以使用:

boolean isNan = Double.isNaN(calculateIt("input text"));
assertTrue(isNan);

Double.NaN 值不能与 == 进行比较(Double.NaN == Double.NaN 将返回 false), 因为 NaN 被认为是一个特殊的。

更多信息:

关于Java Assert Double 是 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35553464/

相关文章:

java - com.google.gson.internal.LinkedTreeMap 无法转换为我的类(class)

java - 为什么无法通过公网ip访问服务器

java - 在 Spring @Configuration 中引用 applicationContext.xml bean

java - 我如何通过反射(reflection)性地比较 POJO 的领域

java - 当您同时具有虚拟和真实实现的接口(interface)时,单元测试的最佳方法是什么?

pycharm调试器中的python 3.4 AssertionError

java - 序言中不允许使用 Intellij 内容

python - 现在为什么不在测试中使用 python 的 assert 语句呢?

python断言用-O触发

tfs中的junit测试结果