gpt4 book ai didi

java - 有没有办法用 Hamcrest 对嵌套属性进行深入比较

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:39:45 26 4
gpt4 key购买 nike

我的大部分测试都使用 hamcrest,但遇到了一个问题,它无法测试对象图中下一层的属性。下面是我的测试用例的片段

final List<Foo> foos= fooRepository.findAll(spec);
assertThat(results, is(notNullValue()));
assertThat(results, hasItem(hasProperty("id.fooID1", equalTo("FOOID1"))));

所以在这里我想检查 foos 列表中是否有属性 id.fooID1 equla 到 FOOID1 。在这里我要向下一级检查我的嵌套属性。这目前在 hamcrest 中不起作用,我得到以下信息错误。

java.lang.AssertionError: 
Expected: a collection containing hasProperty("id.fooID1", "FOOID1")
but: No property "id.fooID1"
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:956)
at org.junit.Assert.assertThat(Assert.java:923)

有关此问题的任何帮助或解决方法。

最佳答案

您可以嵌套 hasProperty 调用:

assertThat(results, hasItem(hasProperty("id", hasProperty("fooID1", equalTo("FOOID1")))));

对于更深的嵌套,这可能有点笨拙。

关于java - 有没有办法用 Hamcrest 对嵌套属性进行深入比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36363372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com