AssertJ为Java hasValueSatisfying(Consumer<T> requirement)
对象提供了方法Optional
。此方法允许在可选值上创建断言,如下所示:
assertThat(myOptional).hasValueSatisfying(v -> {
assertThat(v.getFirstName()).isEqualTo("Stephen");
assertThat(v.getLastName()).isEqualTo("Smith");
assertThat(v.getAge()).isEqualTo(22);
});
是否有任何等效的收藏方法?
因为我可以像这样滥用方法allMatch(Predicate<? super T> predicate)
assertThat(myIcelanderFriends).extracting(Person::getAddress)
.allMatch(a -> {
assertThat(a.getCountry()).isEqualTo("Iceland");
assertThat(a.getPhoneContryCode()).isEqualTo("+354");
assertThat(a.getSurname()).endsWith("son");
return true; // Predictes must return a boolean
});
但是我必须添加误导性return true;
行,因为谓词需要返回值。我更喜欢在这里使用haveValuesSatisfying(Consumer<T> requirement)
方法。
我是否监督过这样的方法,或者它是否存在(尚未)?
答案 0 :(得分:1)
目前还没有这样的方法......但是将在3.6.0中: https://github.com/joel-costigliola/assertj-core/issues/711