สมมติว่าฉันต้องการทดสอบหน่วยวิธีด้วยลายเซ็นนี้:
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 จะดีสำหรับสิ่งประเภทนี้หรือไม่? ถ้าเป็นเช่นนั้นไวยากรณ์หลอกของฉันจะเป็นอย่างไร