【发布时间】:2015-12-05 11:22:45
【问题描述】:
如何测试来自休息端点的空 JSON 响应。我希望有类似的东西:
ResultActions actions = mockMvc.perform(..);
actions.andExpect(jsonPath("$", empty()));
显然这会失败,因为{} 并不完全是空的。
有什么建议吗?
【问题讨论】:
标签: json spring-test
如何测试来自休息端点的空 JSON 响应。我希望有类似的东西:
ResultActions actions = mockMvc.perform(..);
actions.andExpect(jsonPath("$", empty()));
显然这会失败,因为{} 并不完全是空的。
有什么建议吗?
【问题讨论】:
标签: json spring-test
试试这个:
ResultActions actions = mockMvc.perform(..);
actions.andExpect(content().string("[]"));
【讨论】:
这对我有用:
ResultActions actions = mockMvc.perform(..);
actions.andExpect(content().string(""));
【讨论】:
在 JSON 中,{} 是一个非空但为空的对象。这会将 Java 转换为空映射。您可以像这样验证 JSON 元素是否为非 null 且为空:
actions.andExpect(jsonPath("$").value(Collections.EMPTY_MAP))
【讨论】:
exists() 方法对我来说效果很好。
this.mockMvc.perform(get("....")).andExpect(jsonPath("$").exists());
【讨论】:
这可以使用“jsonpathresultmatchers”提供的空地图进行测试。
ResultActions actions = mockMvc.perform(..);
actions.andExpect(jsonPath("$", anEmptyMap()));
【讨论】: