Angenommen, ich möchte eine Methode mit dieser Signatur testen:
List<MyItem> getMyItems();
Angenommen, es MyItem
handelt sich um ein Pojo mit vielen Eigenschaften, auf die "name"
über zugegriffen werden kann getName()
.
Ich möchte nur überprüfen, ob die List<MyItem>
oder eine Iterable
der beiden MyItem
Instanzen zwei Instanzen enthält , deren "name"
Eigenschaften die Werte "foo"
und haben "bar"
. Wenn andere Eigenschaften nicht übereinstimmen, interessieren mich die Zwecke dieses Tests nicht wirklich. Wenn die Namen übereinstimmen, ist dies ein erfolgreicher Test.
Ich möchte, dass es wenn möglich einzeilig ist. Hier ist eine "Pseudo-Syntax", wie ich sie gerne machen würde.
assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"});
Wäre Hamcrest gut für so etwas? Wenn ja, was genau wäre die Hamcrest-Version meiner obigen Pseudosyntax?