如何测试来自rest端点的空JSON响应。我希望有一些东西:
ResultActions actions = mockMvc.perform(..);
actions.andExpect(jsonPath("$", empty()));
显然这会失败,因为{}
并非完全为空。
有什么建议吗?
答案 0 :(得分:8)
试试这个:
ResultActions actions = mockMvc.perform(..);
actions.andExpect(content().string("[]"));
答案 1 :(得分:3)
这对我有用:
ResultActions actions = mockMvc.perform(..);
actions.andExpect(content().string(""));
答案 2 :(得分:1)
在JSON中,{}
是非空但空的对象。这将转换为Java,成为一个空映射。您可以像这样验证JSON元素为非空值:
actions.andExpect(jsonPath("$").value(Collections.EMPTY_MAP))
答案 3 :(得分:0)
exists()
方法对我来说效果很好。
this.mockMvc.perform(get("....")).andExpect(jsonPath("$").exists());
答案 4 :(得分:0)
这可以使用“jsonpathresultmatchers”提供的空映射进行测试。
ResultActions actions = mockMvc.perform(..);
actions.andExpect(jsonPath("$", anEmptyMap()));