java - Shazamcrest 定制搭配系列

标签 java hamcrest

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

例如[cf] :

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

如果您要匹配集合,您如何执行相同的操作?您可以将自定义匹配器应用于集合中的每个对象吗?到集合中的所有对象?

最佳答案

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

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

文档说您必须使用包中的自定义 assertThat。虽然这仅用于失败描述,但它可能会干扰某些匹配器的使用。

关于java - Shazamcrest 定制搭配系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33235119/

相关文章:

java - 高枕无忧,无法验证 JSON 数组响应

java - 是否有用于 mockito stub 的 `not` ArgumentMatcher

java - Hamcrest - 测试具有相同属性值的复杂对象的优雅方式

java - JDK8 LocalDate.toEpochDay 性能异常下降

java - 使用 Clips 立即播放声音

javascript - 如何创建一个范围内的随机数的简单分布图(java或javascript)

java - 编写与 Hamcrest AllOf/CombinableMatcher 匹配器配合良好的自定义匹配器

java - 是 "throws Throwable"好的做法

java - 在没有 Spark 控制台的情况下使用 Apache Spark MLib 库

junit - Hamcrest - Matchers.hasProperty : how to check if a List of objects contains an object with a concrete value