我是单元测试新手。我用Junit4,我必须比较两个双数。但如果差值不大于1,则应该通过。例如:
Assert.assertEquals(240, 241); //should pass
Assert.assertEquals(240, 239); //should pass
Assert.assertEquals(240, 242); //should fail
Assert.assertEquals(240, 238); //should fail
有办法实现它吗?
读取您使用的方法的javadoc:
@Deprecated` public static void assertEquals(double expected, double actual)
弃用。请使用asserequals (double expected, double actual, double epsilon)。
它告诉您该方法已被弃用。更亲切的是,它告诉我们用什么更好的方法来代替。
public static void assertEquals(double expected, double actual, double delta)
断言两个双精度数或浮点数在一个正增量内相等。
你看,这个方法完全符合你的需要。所以你可以简单地使用:
Assert.assertEquals(240, 241, 1.0); //will pass
Assert.assertEquals(240, 239, 1.0); //will pass
Assert.assertEquals(240, 242, 1.0); //will fail
Assert.assertEquals(240, 238, 1.0); //will fail
除了舍甫琴科建议使用Assert.assertEquals(a, b, 1.0);
请检查assertTrue
Assert.assertTrue(Math.abs(240 - 241) <= 1)