Spring MockMvc 验证正文为空
Spring MockMvc verify body is empty
我有一个简单的Spring测试
@Test
public void getAllUsers_AsPublic() throws Exception {
doGet("/api/users").andExpect(status().isForbidden());
}
public ResultActions doGet(String url) throws Exception {
return mockMvc.perform(get(url).header(header[0],header[1])).andDo(print());
}
我想验证响应正文是否为空。例如。做类似 .andExpect(content().isEmpty())
的事情
我认为这些选项之一应该可以满足您的需求,尽管不如 isEmpty()
(来自 ContentResultMatchers documentation):
.andExpect(content().bytes(new Byte[0])
或
.andExpect(content().string(""))
有一个更简洁的方法:
andExpect(jsonPath("$").doesNotExist())
请注意,您不能使用 isEmpty
,因为它会检查空值,并假定该属性存在。当属性不存在时,isEmpty
抛出异常。然而,doesNotExist
验证该属性不存在,当与 $
一起使用时,它会检查一个空的 JSON 文档。
我有一个简单的Spring测试
@Test
public void getAllUsers_AsPublic() throws Exception {
doGet("/api/users").andExpect(status().isForbidden());
}
public ResultActions doGet(String url) throws Exception {
return mockMvc.perform(get(url).header(header[0],header[1])).andDo(print());
}
我想验证响应正文是否为空。例如。做类似 .andExpect(content().isEmpty())
我认为这些选项之一应该可以满足您的需求,尽管不如 isEmpty()
(来自 ContentResultMatchers documentation):
.andExpect(content().bytes(new Byte[0])
或
.andExpect(content().string(""))
有一个更简洁的方法:
andExpect(jsonPath("$").doesNotExist())
请注意,您不能使用 isEmpty
,因为它会检查空值,并假定该属性存在。当属性不存在时,isEmpty
抛出异常。然而,doesNotExist
验证该属性不存在,当与 $
一起使用时,它会检查一个空的 JSON 文档。