Hamcrest。将集合中的项目与2个特定属性值匹配

时间:2017-10-11 10:57:52

标签: java spring-boot matcher hamcrest

我有一个带有SpecialObject集合的测试结果。 SpecialObject有" name"和"姓氏"作为属性。我想测试集合是否包含具有2个特定属性的specialObject," name = myname"和"姓氏=姓氏"。

以下是我没有成功的尝试:

assertThat(result, Matchers.<SpecialObject>hasItem(
    allOf(
          hasProperty("name", equalTo("myname")),
          hasProperty("surname", equalTo("lastname"))
));

1 个答案:

答案 0 :(得分:4)

您可以使用both匹配器检查两个属性是否都有异常值。

    Assert.assertThat(result, Matchers.<SpecialObject>hasItem(
            Matchers.both(hasProperty("name", equalTo("myname")))
                    .and(hasProperty("surname", equalTo("lastname")))));