中檢查從集合中提取的對應於原始值的值我有這種情況,我需要集合中的所有對象都在字段中具有特定的布爾值。提取()似乎是一個很好的候選人。我能夠很容易地訪問該領域,但是當我想再次檢查它時,我無法找到在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 –