Spring MockMvc验证体是空的

时间:2017-09-26 07:37:51

标签: spring spring-test spring-test-mvc

我有一个简单的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())

之类的事情

2 个答案:

答案 0 :(得分:8)

有一种更清洁的方法:

andExpect(jsonPath("$").doesNotExist())

请注意,您不能使用isEmpty,因为它会检查一个空值,并假定该属性存在。当属性不存在时,isEmpty会引发异常。而doesNotExist验证该属性不存在,并且与$一起使用时,它检查空的JSON文档。

答案 1 :(得分:4)

我认为其中一个选项应该能够实现您所寻找的目标,尽管不如isEmpty()(来自ContentResultMatchers documentation)那么好:

.andExpect(content().bytes(new Byte[0])

.andExpect(content().string(""))