asume que desea probar unidad de un método con esta firma:¿Cómo afirmo que un Iterable contiene elementos con una cierta propiedad?
List<MyItem> getMyItems();
Supongamos MyItem
es un Pojo que tiene muchas propiedades, una de las cuales es "name"
, accede a través de getName()
.
Todo lo que importa es que la verificación de la List<MyItem>
, o cualquier Iterable
, contiene dos instancias MyItem
, cuya "name"
propiedades tener los valores "foo"
y "bar"
. Si otras propiedades no coinciden, realmente no me importan 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 alguna "pseudo-sintaxis" del tipo de cosas que me gustaría hacer.
assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"});
Would Hamcrest ser bueno para este tipo de cosas? Si es así, ¿cuál sería exactamente la versión de Hamcrest de mi pseudo-sintaxis anterior?
solo como un nodo lateral - esta es una solución de hamcrest (no assertj) – Hartmut