Java AssertJ:将对象集合与条件/断言集合相匹配的最佳方法

Java AssertJ:将对象集合与条件/断言集合相匹配的最佳方法,java,assertj,Java,Assertj,我正在寻找一种方便的方法,将对象列表与对象列表进行匹配 条件或断言,所有记录可以按任何顺序排列,但所有记录都应与所有指定的条件匹配。特定对象到特定条件 例如: 我有一个对象列表,可以按任意顺序获取。 让我们假设以下类型: class Person { String name; Integer age; } 我有一个我希望匹配的条件列表 Condition personA = new Condition<>(p -> p.name.equals("Bo

我正在寻找一种方便的方法,将对象列表与对象列表进行匹配 条件或断言,所有记录可以按任何顺序排列,但所有记录都应与所有指定的条件匹配。特定对象到特定条件

例如:

我有一个对象列表,可以按任意顺序获取。 让我们假设以下类型:

class Person {
    String name;
    Integer age;
}
我有一个我希望匹配的条件列表

Condition personA = new Condition<>(p -> p.name.equals("Bobby"), "Person A");
Condition personB = new Condition<>(p -> p.name.equals("john"), "Person B");
conditionpersona=newcondition(p->p.name.equals(“Bobby”),“personA”);
条件personB=新条件(p->p.name.equals(“john”),“personB”);
现在我希望有一个操作员,它将获取一个人员列表,并将每个人员与条件列表相匹配。条件之一应该通过,否则-断言失败。 人员顺序和条件可能是任意的

有没有办法在不添加自定义实现的情况下做到这一点


p.S>我知道extraction()方法,但认为比较复杂对象并不方便。

您可以测试
列表中的每个元素是否至少满足
personA
personB
的一个条件,如下所示:

assertThat( personList ).are( anyOf( personA, personB ) );

注:需要以下导入:

import static org.assertj.core.api.Assertions.anyOf;
import static org.assertj.core.api.Assertions.assertThat;

您可以测试
列表
个人列表
中的每个元素是否至少满足一个条件
个人
个人b
,如下所示:

assertThat( personList ).are( anyOf( personA, personB ) );

注:需要以下导入:

import static org.assertj.core.api.Assertions.anyOf;
import static org.assertj.core.api.Assertions.assertThat;

没有条件的替代品是。没有条件的替代品是。