Giả sử tôi muốn kiểm tra đơn vị một phương pháp với chữ ký này:
List<MyItem> getMyItems();
Giả sử MyItem
là một Pojo có nhiều thuộc tính, một trong số đó là "name"
, được truy cập qua getName()
.
Tất cả những gì tôi quan tâm khi xác minh là List<MyItem>
, hoặc bất kỳ Iterable
, chứa hai MyItem
phiên bản, mà "name"
thuộc tính của chúng có giá trị "foo"
và "bar"
. Nếu bất kỳ thuộc tính nào khác không khớp, tôi không thực sự quan tâm đến mục đích của bài kiểm tra này. Nếu tên trùng khớp, đó là một thử nghiệm thành công.
Tôi muốn nó là một lớp lót nếu có thể. Đây là một số "cú pháp giả" của loại điều tôi muốn làm.
assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"});
Hamcrest có tốt cho loại điều này không? Nếu vậy, chính xác thì phiên bản hamcrest của cú pháp giả của tôi ở trên là gì?