不推荐使用双精度的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*/
}
Run Code Online (Sandbox Code Playgroud)
以下是我收到的3个双值,我想用JUnit检查:110.42,2760.5和10931.58.JUnit测试应该如何使用断言?我在一个方法中计算得到它们:
processor.calcPossibleValue(allowed_percentage){return /*Some weird formulae here*/;}
Run Code Online (Sandbox Code Playgroud)
Jon*_*uis 10
您需要在assertEquals调用中添加第四个参数:两个双精度应被视为"相等"的阈值.你的电话应该是这样的:
assertEquals("Wrong max possible value for %" + percentage, 110.42,
processor.calcPossibleValue(percentage), 0.01);
Run Code Online (Sandbox Code Playgroud)
上述调用将指示如果返回的值processor.calcPossibleValue(percentage)在±0.01之内110.42,则认为这两个值相等.您可以更改此值,使其尽可能小到应用程序所需的值.
有关更多信息,请参阅JUnit文档.