Shazamcrest自定义与集合匹配

时间:2015-10-20 11:11:54

标签: java hamcrest

使用Shazamcrest可以通过提供字段路径和匹配器来进行自定义匹配,然后应用于该字段。

例如[cf]

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

如果您正在匹配集合,您如何做同样的事情?您可以将自定义匹配器应用于集合中的每个对象吗?收集到集合中的所有对象?

1 个答案:

答案 0 :(得分:2)

假设Shazamcrest匹配器的工作方式与常规的Hamcrest匹配器一样,您应该可以将它们与所有内置的集合匹配器一起使用。

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

文档说明您必须使用程序包中的自定义assertThat。虽然这只是故障描述,但它可能会干扰使用某些匹配器。