Suponha que eu queira testar a unidade de um método com esta assinatura:
List<MyItem> getMyItems();
Suponha que MyItem
seja um Pojo que possui muitas propriedades, uma das quais é "name"
, acessada via getName()
.
Tudo que me importa é verificar se o List<MyItem>
, ou qualquer Iterable
, contém duas MyItem
instâncias, cujas "name"
propriedades têm os valores "foo"
e "bar"
. Se alguma outra propriedade não corresponder, realmente não me importo com os propósitos deste teste. Se os nomes corresponderem, o teste foi bem-sucedido.
Eu gostaria que fosse uma linha, se possível. Aqui está alguma "pseudo-sintaxe" do tipo de coisa que eu gostaria de fazer.
assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"});
Hamcrest seria bom para esse tipo de coisa? Em caso afirmativo, qual seria exatamente a versão hamcrest da minha pseudo-sintaxe acima?