Предположим, что я хочу unit test метод с этой сигнатурой:
List<MyItem> getMyItems();
Предположим, что MyItem
- это Pojo, обладающее многими свойствами, один из которых "name"
, доступ через getName()
.
Все, что мне нужно для проверки, состоит в том, что List<MyItem>
или любой Iterable
содержит два экземпляра MyItem
, чьи свойства "name"
имеют значения "foo"
и "bar"
. Если какие-либо другие свойства не совпадают, мне совершенно не нужны цели этого теста. Если имена совпадают, это успешный тест.
Я хотел бы, чтобы это было однострочным, если возможно. Вот какой-то "псевдо-синтаксис" того, что я хотел бы сделать.
assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"});
Может ли Хэмкрест быть хорошим для такого рода вещей? Если да, то какова будет именно версия hamcrest моего псевдосинтакса выше?