不推荐使用双打的assertEquals。我发现应该使用带有Epsilon的形式。这是因为双打不可能100%严格。但无论如何我需要比较两个双打(预期结果和实际结果),但我不知道该怎么做。
目前我的测试如下:
@Test
public void testCalcPossibleDistancePercentageCount() {
int percentage = 100;
assertEquals("Wrong max possible value for %" + percentage, 110.42, processor.calcPossibleValue(percentage));
percentage = 75;
/*corresponding assertions*/
}
以下是我收到的 3 个双精度值,我想用 JUnit 检查它们:110.42、2760.5 和 10931.58。
JUnit 测试应该如何进行断言?我收到它们作为方法的计算结果:
processor.calcPossibleValue(allowed_percentage){return /*Some weird formulae here*/;}
您需要添加第四个参数assertEquals
call:阈值,在该阈值内,两个双精度数应被视为“相等”。您的调用应如下所示:
assertEquals("Wrong max possible value for %" + percentage, 110.42,
processor.calcPossibleValue(percentage), 0.01);
上面的调用表明,如果返回的值processor.calcPossibleValue(percentage)
在 ± 0.01 范围内110.42
,则认为两个值相等。您可以更改此值,使其尽可能小,以满足您的应用程序的需要。
See the JUnit 文档 http://junit.sourceforge.net/javadoc/org/junit/Assert.html#assertEquals%28java.lang.String,%20double,%20double,%20double%29了解更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)