2015-10-20 69 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从包中。虽然这只是针对故障描述,但它可能会干扰使用某些匹配器。