0

AssertJ は、hasValueSatisfying(Consumer<T> requirement)JavaOptionalオブジェクトのメソッドを提供します。このメソッドを使用すると、次のようにオプションの値でアサーションを作成できます。

    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)方法があるといいのですが。私はそのような方法を監督しましたか、それとも (まだ) 存在しませんか?

4

1 に答える 1

1

いいえ、そのような方法はまだありません...しかし、3.6.0になる予定です: https://github.com/joel-costigliola/assertj-core/issues/711

于 2016-07-15T08:19:08.163 に答える