AssertJ в списке опционных - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть список опций, например List<Optional<String>> optionals, и я хочу использовать assertj, чтобы утверждать несколько вещей.

Но я не могу сделать это правильно - я нахожу примеры только для одногоНеобязательно.

Конечно, я могу делать все проверки самостоятельно, например

Assertions.assertThat(s).allMatch(s1 -> s1.isPresent() && s1.get().equals("foo"));

, и связывать их, но у меня все еще есть ощущение, что есть более умныйчерез API.

Я что-то здесь пропускаю или нет поддержки List<Optional<T>> в assertj?

1 Ответ

0 голосов
/ 12 февраля 2019

AssertJ, похоже, не предоставляет утилит для коллекций опций, но вы можете перебирать свой список и выполнять свои утверждения для каждого элемента.

list.forEach(element -> assertThat(element)
        .isPresent()
        .hasValue("something"));

A возможно лучший подходсобрать все свои утверждения вместо того, чтобы остановиться на первом.Вы можете использовать SoftAssertions по-разному, но я предпочитаю это:

SoftAssertions.assertSoftly(softly ->
    list.forEach(element -> softly.assertThat(element).isPresent())
);
...