Đây là phương pháp của tôi bên trong bộ điều khiển của tôi mà được chú thích bởi @Controller
Làm thế nào để kiểm tra JSON trong cơ thể phản ứng với mockMvc
@RequestMapping(value = "/getServerAlertFilters/{serverName}/", produces = "application/json; charset=utf-8")
@ResponseBody
public JSONObject getServerAlertFilters(@PathVariable String serverName) {
JSONObject json = new JSONObject();
List<FilterVO> filteredAlerts = alertFilterService.getAlertFilters(serverName, "");
JSONArray jsonArray = new JSONArray();
jsonArray.addAll(filteredAlerts);
json.put(SelfServiceConstants.DATA, jsonArray);
return json;
}
Tôi hy vọng {"data":[{"useRegEx":"false","hosts":"v2v2v2"}]}
như json tôi.
Và đây là thử nghiệm JUnit tôi:
@Test
public final void testAlertFilterView() {
try {
MvcResult result = this.mockMvc.perform(get("/getServerAlertFilters/v2v2v2/").session(session)
.accept("application/json"))
.andDo(print()).andReturn();
String content = result.getResponse().getContentAsString();
LOG.info(content);
} catch (Exception e) {
e.printStackTrace();
}
}
Đây là giao diện điều khiển đầu ra:
MockHttpServletResponse:
Status = 406
Error message = null
Headers = {}
Content type = null
Body =
Forwarded URL = null
Redirected URL = null
Cookies = []
Thậm chí result.getResponse().getContentAsString()
là một chuỗi rỗng.
Ai đó có thể đề nghị cách lấy JSON của tôi trong phương pháp kiểm tra JUnit của tôi để tôi có thể hoàn thành trường hợp thử nghiệm của mình.