断言列表项没有顺序

时间:2019-03-04 09:50:47

标签: assertj

似乎很愚蠢,但是我找不到这个(我想是很基本的)问题的好的解决方案:我有一个包含不能由equals检查的元素的列表。相反,我想通过项目的属性来声明项目状态,而我想忽略项目顺序。

assertThat(list.get(xx))不适合,因为它假定知道确切的顺序。 assertThat(list).containsInAnyOrder(xx, yyy, ...)不适合,因为它假定能够按equals()比较对象。 我想念的是类似assertThat(list).containsInAnyOrder( Consumer<ObjectAssert<T>>...itemAssertions )的东西。 另外,在我的情况下,我已经为对象类型T自定义了Assertion,但是我想这需要非常灵活的API才能将其用于列表项。

我想念什么?

1 个答案:

答案 0 :(得分:1)

您可以尝试将usingRecursiveFieldByFieldElementComparatorcontainsExactlyInAnyOrder断言链接在一起。