JUnit:在预期和实际之间允许1秒的差异

时间:2015-03-23 08:55:56

标签: java unit-testing time junit rounding

我正在开发能够保持最旧项目当前年龄的东西,对于我编写JUnit测试的代码覆盖率。

因此,当我编写单元测试时,我会执行以下操作:

currentAge = resultSet.getTime(4);
Calendar cal = Calendar.getInstance();
        Assert.assertEquals(new Time(cal.get(Calendar.HOUR_OF_DAY) - 1,cal.get(Calendar.MINUTE) - 30,Calendar.SECOND), currentAge);

这个实际可行,但我有时会遇到此测试失败

  

junit.framework.AssertionFailedError:
  预计:08:09:14

     

实际:08:09:13

我认为原因是这些动作的顺序有时会产生1秒的差异。有没有什么办法可以很好地解决这个问题,或者让测试执行1秒的差异?

我该怎么办?

1 个答案:

答案 0 :(得分:3)

对assertEquals方法使用delta参数 - 请参阅this answerthis javadoc