如何在JUnit中比较两个double列表

弗朗索瓦

在JUnit 4测试中,我有一个方法getValues()可以返回List<Double>要与引用列表进行比较对象。到目前为止,我发现的最佳解决方案是使用org.hamcrest.collection.IsArray.hasItems并且org.hamcrest.Matchers.closeTo像这样:

assertThat(getValues(), hasItems(closeTo(0.2, EPSILON), closeTo(0.3, EPSILON)));

这对于只返回很少值的测试非常有效。但是,如果测试返回更多值,则绝对不是最佳方法。

我也尝试了以下代码。代码编译需要向下转换到Matcher之前hasItems

List<Matcher<Double>> doubleMatcherList = new ArrayList<Matcher<Double>>();
doubleMatcherList.add(closeTo(0.2, EPSILON));
doubleMatcherList.add(closeTo(0.3, EPSILON));
assertThat(getValues(), (Matcher) hasItems(doubleMatcherList));

比较失败,我不明白为什么:

java.lang.AssertionError:预期:(包含<[<0.2E的<1.0E-6>内的数值,<0.3>的<1.0E-6>内的数值的集合)): 0.2,0.30000000000000004]>

有没有更好的方法比较两个较大的双打列表?这里的困难在于,需要使用数值公差来验证的结果getValues()是否等于我的参考列表。对于任何对象列表而言,这种比较似乎都很容易,但对于对象列表而言却并非如此Double

迈克尔·劳埃德·李·麦克

我认为这里的正确解决方案是Custom Matcher基本上像IsIterableContainingInOrder之类的东西仅适用于Doubles并支持错误余量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Clojure中比较/减去两个列表

来自分类Dev

如何在python中比较两个列表

来自分类Dev

如何在C#中比较两个列表?

来自分类Dev

如何在Python中比较两个以上的列表?

来自分类Dev

如何在javascript中比较两个列表项?

来自分类Dev

如何在C#中比较两个对象列表?

来自分类Dev

如何在Dart中比较两个相等且包含相同对象的列表?

来自分类Dev

如何在LINQ中比较两个匿名变量列表

来自分类Dev

如何在tcl中比较两个列表(包含字符和数字)?

来自分类Dev

如何在Matlab中比较两个未排序的列表?

来自分类Dev

如何在Python中比较两个列表并计算所有匹配项?

来自分类Dev

如何在flutter中比较两个列表数据(飞镖)

来自分类Dev

如何在Python中比较两个列表中的值?

来自分类Dev

如何在tcl中比较两个列表(包含字符和数字)?

来自分类Dev

如何在露天javascript中比较两个noderefs

来自分类Dev

如何在python中比较两个时间字段

来自分类Dev

如何在Java中比较两个图像

来自分类Dev

如何在python中比较两个时区?

来自分类Dev

如何在Postgresql中比较两个表?

来自分类Dev

如何在android中比较两个edittext字段

来自分类Dev

如何在Windows中比较两个csv文件

来自分类Dev

如何在Java中比较两个哈希映射

来自分类Dev

如何在JavaScript中比较两个日期时间?

来自分类Dev

如何在querybuilder中比较两个日期

来自分类Dev

如何在golang中比较两个文件?

来自分类Dev

如何在shell中比较两个值?

来自分类Dev

如何在Java中比较两个arraylist <Contacts>

来自分类Dev

如何在Django中比较两个Datetime字段

来自分类Dev

如何在C ++中比较两个char数组?

Related 相关文章

热门标签

归档