web-dev-qa-db-ja.com

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))));
_

ここで、実際はIDがLongのPOJOです。

ええ、

タイプMatcherAssertのメソッドassertThat(T, Matcher<? super T>)は、引数_(List<Pojo>, Matcher<Iterable<? super Object>>)_には適用されません

さまざまなドキュメントやその他のstackoverflowページから、それは有効なはずですが、上記のエラーが出ます。

27
wenic

Typeパラメーターに明示的に入力してみてください-actualList<YourPojo>、呼び出してみてください:

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

クラスタイプを指定する必要がない場合の短いバージョン:

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