Supongamos que quiero probar un método con esta firma:
List<MyItem> getMyItems();
Supongamos que MyItem
es un Pojo que tiene muchas propiedades, una de las cuales es "name"
a través de getName()
.
Todo lo que me importa verificar es que el List<MyItem>
, o cualquiera Iterable
, contiene dos MyItem
instancias, cuyas "name"
propiedades tienen los valores "foo"
y "bar"
. Si alguna otra propiedad no coincide, realmente no me importa para los propósitos de esta prueba. Si los nombres coinciden, es una prueba exitosa.
Me gustaría que fuera de una sola línea si es posible. Aquí hay una "pseudo-sintaxis" del tipo de cosas que me gustaría hacer.
assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"});
¿Hamcrest sería bueno para este tipo de cosas? Si es así, ¿cuál sería exactamente la versión de Hamcrest de mi pseudo-sintaxis anterior?