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 文档。