Java Assert Double是NaN

Ole*_*kov 6 java junit assert nan

我试图断言我的双重是NaN.这是一段代码:

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

assertEquals(Double.NaN, calculateIt("input text"));
Run Code Online (Sandbox Code Playgroud)

代码不编译,Double.NaN定义为原始代码

public static final double NaN = 0.0d / 0.0;
Run Code Online (Sandbox Code Playgroud)

为了使断言工作,我用Na对象包装NaN.

assertEquals(new Double(Double.NaN), calculateIt("input text"));
Run Code Online (Sandbox Code Playgroud)

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

Kon*_*kov 8

你可以使用:

boolean isNan = Double.isNaN(calculateIt("input text"));
assertTrue(isNan);
Run Code Online (Sandbox Code Playgroud)

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

更多信息: