Java Shazamcrest与系列定制匹配

Java Shazamcrest与系列定制匹配,java,hamcrest,Java,Hamcrest,通过提供一个字段路径和一个匹配器(然后应用于该字段),With可以进行自定义匹配 例如: 断言( 实际人员, sameBeanAs(期望的人)。带(“地址.街道名称”,起始带(“Via”); 如果要匹配集合,如何执行相同的操作?能否对集合中的每个对象应用自定义匹配器?对集合中的所有对象应用自定义匹配器?假设Shazamcrest匹配器与常规Hamcrest匹配器一样工作,您应该能够将其与所有内置集合匹配器一起使用 assertThat( people, contains( s

通过提供一个字段路径和一个匹配器(然后应用于该字段),With可以进行自定义匹配

例如:

断言(
实际人员,
sameBeanAs(期望的人)。带(“地址.街道名称”,起始带(“Via”);

如果要匹配集合,如何执行相同的操作?能否对集合中的每个对象应用自定义匹配器?对集合中的所有对象应用自定义匹配器?

假设Shazamcrest匹配器与常规Hamcrest匹配器一样工作,您应该能够将其与所有内置集合匹配器一起使用

assertThat(
  people,
  contains(
    sameBeanAs(expectedPerson).with("address.streetName", startsWith("Via")
  )
);
文档中说,您必须使用包中的自定义
资产。虽然这仅用于故障描述,但可能会干扰某些匹配器的使用

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