AssertJ是否为具有Consumer作为参数的iterables提供了断言方法?

时间:2016-07-14 08:51:19

标签: java assertj

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)方法。 我是否监督过这样的方法,或者它是否存在(尚未)?

1 个答案:

答案 0 :(得分:1)

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