我正在寻找一种将对象列表与条件或断言,这样所有记录都可以按任何顺序排列,但所有记录都应该与所有指定的条件匹配。特定对象到特定条件。
示例:
我有一个对象列表,可以按任意顺序提取。比方说以下类型:
class Person {
String name;
Integer age;
}
Person A is Bobby, 34y
Person B is John, 15y
我有一份我希望符合的条件清单。
Condition personA = new Condition<>(p -> p.name.equals("Bobby"), "Person A");
Condition personB = new Condition<>(p -> p.name.equals("john"), "Person B");
现在,我希望有一些操作员,可以获取人员列表,并将每个人与条件列表相匹配。条件之一应通过,否则断言失败。人的秩序和条件可能是任意的。
有没有任何方法可以在不添加自定义实现的情况下做到这一点?
p.S>我知道extracting((方法,但认为它对比较复杂对象不太方便。
您可以测试List <Person>
personList
中的每个元素是否至少满足条件personA
和personB
之一,如下所示:
assertThat( personList ).are( anyOf( personA, personB ) );
请参阅AssertJ文档。
请注意,需要以下进口:
import static org.assertj.core.api.Assertions.anyOf;
import static org.assertj.core.api.Assertions.assertThat;