AssertJ 是否在以 Consumer 作为参数的可迭代对象上提供断言方法?

Does AssertJ provide an assertion method on iterables that has a Consumer as argument?

AssertJ 为 Java Optional 对象提供方法 hasValueSatisfying(Consumer<T> requirement)。此方法允许像这样在可选值上创建断言:

    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; 行,因为谓词需要 return 值。我更希望这里也有 haveValuesSatisfying(Consumer<T> requirement) 方法。 我监督了这样的方法还是它不存在(还)?

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