Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单元测试,如果差异不大于1,则断言等于_Java_Unit Testing_Testing_Junit4 - Fatal编程技术网

Java 单元测试,如果差异不大于1,则断言等于

Java 单元测试,如果差异不大于1,则断言等于,java,unit-testing,testing,junit4,Java,Unit Testing,Testing,Junit4,我是单元测试新手。我使用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 除了@Nikolai Shevch

我是单元测试新手。我使用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

除了@Nikolai Shevchenko建议使用
Assert.assertEquals(a、b、1.0)之外,还有什么方法可以实现它

也请检查一下

Assert.assertTrue(Math.abs(240-241)阅读以下内容的javadoc:

不推荐使用。请改用assertEquals(双预期值、双实际值、双ε)

它告诉您此方法已被弃用。 更亲切的是,它告诉我们用它来代替

断言两个double或float在正增量内等于

你看,这种方法完全符合你的需要。所以你可以简单地使用:

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);
这不是一个好建议。它增加了一个无用的间接层次。如果有的话,您应该推荐
assertThat
和hamcrest匹配器。当您知道这些,您将永远不需要另一个Assert。
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