Spring MVC Test空json

时间:2015-12-05 11:22:46

标签: json spring-test

如何测试来自rest端点的空JSON响应。我希望有一些东西:

    ResultActions actions = mockMvc.perform(..);
    actions.andExpect(jsonPath("$", empty()));

显然这会失败,因为{}并非完全为空。 有什么建议吗?

5 个答案:

答案 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()));