使用Shazamcrest可以通过提供字段路径和匹配器来进行自定义匹配,然后应用于该字段。
例如[cf]:
assertThat(
actualPerson,
sameBeanAs(expectedPerson).with("address.streetName", startsWith("Via"));
如果您正在匹配集合,您如何做同样的事情?您可以将自定义匹配器应用于集合中的每个对象吗?收集到集合中的所有对象?
答案 0 :(得分:2)
假设Shazamcrest匹配器的工作方式与常规的Hamcrest匹配器一样,您应该可以将它们与所有内置的集合匹配器一起使用。
assertThat(
people,
contains(
sameBeanAs(expectedPerson).with("address.streetName", startsWith("Via")
)
);
文档说明您必须使用程序包中的自定义assertThat
。虽然这只是故障描述,但它可能会干扰使用某些匹配器。