我正在尝试为Spring Boot微服务创建Junit测试。我需要查看执行操作的响应或结果。当我这样添加时,它不会在我的控制台中打印。
@Test
public void retrieveDetailsForCourse() throws Exception {
Mockito.when(
studentService.retrieveCourse(Mockito.anyString(),
Mockito.anyString())).thenReturn(mockCourse);
RequestBuilder requestBuilder = MockMvcRequestBuilders.get(
"/students/Student1/courses/Course1").accept(
MediaType.APPLICATION_JSON);
MvcResult result = mockMvc.perform(requestBuilder).andReturn();
System.out.println(result.getResponse());
}
如何从结果中检索响应/结果?
答案 0 :(得分:2)
您可以使用andDo(print())
打印请求和响应控制台,例如:
MvcResult result = mockMvc.perform(requestBuilder)
.andDo(print())
.andReturn();
您可能还想为响应添加一些断言,例如:
MvcResult result = mockMvc.perform(requestBuilder)
.andExpect(status().isOk())
.andExpect(content().contentType(...))
.andExpect(content().string("..."));
这是MockMvc测试的标准方法,但您的测试用例可能存在其他问题。使用andReturn()
以及result.getResponse().getContentAsString()
应该打印出响应,这样如果您没有看到任何打印,那么:
perform()
来电已引发异常,从而导致System.out
来电之前退出。