Załóżmy, że chcę przetestować jednostkowo metodę z tym podpisem:
List<MyItem> getMyItems();
Załóżmy, że MyItem
jest to Pojo, które ma wiele właściwości, z których jedna jest "name"
dostępna przez getName()
.
Jedyne, co mi zależy na weryfikacji, to to List<MyItem>
, czy element lub any Iterable
zawiera dwa MyItem
wystąpienia, których "name"
właściwości mają wartości "foo"
i "bar"
. Jeśli jakiekolwiek inne właściwości nie pasują, nie obchodzą mnie cele tego testu. Jeśli nazwy pasują do siebie, jest to udany test.
Chciałbym, żeby to było jednowierszowe, jeśli to możliwe. Oto trochę „pseudo-składni” tego rodzaju, co chciałbym zrobić.
assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"});
Czy Hamcrest byłby dobry do tego typu rzeczy? Jeśli tak, to jaka dokładnie byłaby wersja hamcrest powyższej pseudo-składni?