哈姆克雷斯特。将集合中的项目与 2 个特定的属性值匹配

Sla*_*hor 2 java hamcrest matcher spring-boot

我有一个带有 SpecialObject 集合的测试结果。SpecialObject 具有“name”和“surname”作为属性。我想测试该集合是否包含具有 2 个特定属性“name=myname”和“surname=lastname”的 specialObject。

这是我尝试过但没有成功的方法:

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

Vla*_*nin 5

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

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