Подтвердить что ты не робот

Hamcrest hasItem и hasProperty, утверждают, что существует объект со значением свойства

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.equalTo;

assertThat(actual, hasItem(hasProperty("id", equalTo(1L))));

где actual - POJO с id как Long.

Получаю,

Метод assertThat(T, Matcher<? super T>) в типе MatcherAssert неприменим для аргументов (List<Pojo>, Matcher<Iterable<? super Object>>)

Из разных документов и других страниц stackoverflow это должно быть действительно, но я получаю вышеуказанную ошибку.

4b9b3361

Ответ 1

Попробуйте явно заполнить параметр типа - если actual - это List<YourPojo>, попробуйте позвонить:

assertThat(actual, hasItem(Matchers.<YourPojo>hasProperty("id", equalTo(1L))));

Ответ 2

Более короткая версия, когда вам не нужно указывать тип класса:

List<IssueDefinitionDto> definitions = ...; // Tested variable
...
assertThat(definitions, hasItem(hasProperty("id", is(10L))));