gpt4 book ai didi

java - AssertJ 是否提供了一个以 Consumer 作为参数的可迭代对象的断言方法?

转载 作者:行者123 更新时间:2023-12-01 09:42:08 24 4
gpt4 key购买 nike

AssertJ提供了方法hasValueSatisfying(Consumer<T> requirement)对于 Java 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; line 作为谓词需要返回值。我也更愿意在这里 haveValuesSatisfying(Consumer<T> requirement)方法。我是否监督了这样的方法或者它还不存在?

最佳答案

不,还没有这样的方法......但将在 3.6.0 中: https://github.com/joel-costigliola/assertj-core/issues/711

关于java - AssertJ 是否提供了一个以 Consumer 作为参数的可迭代对象的断言方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38369640/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com