我正在使用MockMvc为我的spring应用程序编写测试。假设我的json结果将具有以下格式:
{
"available": true,
"location": [
{"ID": 1, "path": "local1"},
{"ID": 2, "path": "local2"},
{"ID": 3, "path": "local3"}
],
"firstItem": "local1"
}
我想测试一下,如果$.firstItem
属性的值等于$.location[0].path
,实际上它们应该是相等的。我应该在第三个期望中加入哪种期望?
mockMvc.perform(get(url))
.andExpect(jsonPath("$.available", equalTo(true)))
.andExpect(jsonPath("$.location", hasSize(3)))
.andExpect(jsonPath("$.firstItem", ????));
非常感谢你的帮助!
答案 0 :(得分:0)
我是这个领域的新手,但这对我有用:
mockMvc.perform(get(url))
.andDo(mvcResult -> {
String json = mvcResult.getResponse().getContentAsString();
String a = JsonPath.parse(json).read("$.firstItem").toString();
String b = JsonPath.parse(json).read("$.location[0].path").toString();
Assert.isTrue(a.equals(b),"firstItem is different from location[0].path");
});