中检查从集合中提取的对应于原始值的值我有这种情况,我需要集合中的所有对象都在字段中具有特定的布尔值。提取()似乎是一个很好的候选人。我能够很容易地访问该领域,但是当我想再次检查它时,我无法找到在API中执行该操作的简单方法。我来到的第一件事是以下几点:在AssertJ
SomeService someService = new SomeService();
List<ClassA> llList = someService.getList();
assertThat(llList).extracting("someBoolean")
.are(new Condition<Object>() {
@Override
public boolean matches(Object o) {
return Boolean.FALSE.equals(o);
}
});
这似乎是它是检查我buffled,我找不到东西AssertJ API中更好,比如常见的事。为了增强可读性,我接下来做了以下内容:
assertThat(llList).extracting("someBoolean")
.are(createBooleanCondition(false));
public static Condition<Object> createBooleanCondition(boolean expected){
return new Condition<Object>() {
@Override
public boolean matches(Object o) {
return new Boolean(expected).equals(o);
}
};
}
有没有表达这种说法与AssertJ一个更清洁的方式?
注:我可以使用java8 lambda来使这个更清洁,但我的问题是面向assertj,我也有硬规则,我需要这个在java 1.7中编译。
如果我正确地读这一点,如果我需要的一切是假的,我需要通过Boolean.TRUE上filteredOn(...)。对? –
我的不好,是的。它只是'filteredOn(fieldName,expectedValue)'。请参阅api文档(版本2.x,对于java <8):http://joel-costigliola.github.io/assertj/core/api/org/assertj/core/api/AbstractIterableAssert.html#filteredOn%28java .lang.String,%20java.lang.Object%29 –