【发布时间】:2017-06-01 11:52:44
【问题描述】:
我正在尝试编写一个 JUnit 测试来检查接收到的 JSON 的值。我使用 jsonPath 在 JSON 中访问这些值。我想检查一个值是否为true。对于简单的 jsonPaths,它适用于我,但是当我编写更复杂的 jsonPath 查询时,它不起作用,我收到了这个断言错误:
Expected: is <true>
but: was <[true]>
我的 JSON:
{...
,"trips":
[
{...
,"employee":{"name":"Ordinary Joe","login":"joe","contractor":true}
,...
},
...
],
...
}
有问题的断言
.andExpect(jsonPath("$.trips[?(@.employee.login=='joe')].employee.contractor", is(true)));
我的尝试
我尝试将值也与new Boolean(true)、boolean[] 数组与一个true 值匹配,并在检查is() 匹配器后也与String.valueOf(true) 匹配,但它也不匹配。
我的问题
我应该如何正确匹配这个true 值?这些[] 大括号在测试输出中究竟是什么意思?
【问题讨论】:
标签: java json junit jsonpath hamcrest