2015-10-20 72 views
1

Shazamcrest是可以通過提供一個字段路徑和匹配器然後應用於該字段進行自定義匹配。Shazamcrest自定義匹配與集合

例如[cf]

assertThat(
    actualPerson, 
    sameBeanAs(expectedPerson).with("address.streetName", startsWith("Via")); 

你怎麼做相同的,如果你是匹配的集合?您可以將自定義匹配器應用於集合中的每個對象嗎?對集合中的所有對象?

回答

2

假設Shazamcrest匹配器像常規Hamcrest匹配器一樣工作,您應該可以將它們與所有內置集合匹配器配合使用。

assertThat(
    people, 
    contains(
    sameBeanAs(expectedPerson).with("address.streetName", startsWith("Via") 
) 
); 

文檔說,你必須使用自定義assertThat從包中。雖然這只是針對故障描述,但它可能會干擾使用某些匹配器。