Giả sử tôi muốn kiểm tra đơn vị một phương pháp có chữ ký này:Làm cách nào để xác nhận một phần tử có thể lặp lại chứa một thuộc tính nhất định?
List<MyItem> getMyItems();
Giả MyItem
là một POJO có nhiều tài sản, một trong số đó là "name"
, truy cập thông qua getName()
.
Tất cả tôi quan tâm về việc xác minh là List<MyItem>
, hoặc bất kỳ Iterable
, chứa hai MyItem
trường hợp, có "name"
thân hợp pháp 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 thử nghiệm này. Nếu tên phù hợ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ó phù hợp 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ì?
giống như một nút bên - đây là giải pháp hamcrest (không assertj) – Hartmut