Spring Boot 编写Mock测试
引入Maven依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
测试Controller的代码
@RunWith(SpringRunner.class) @SpringBootTest public class TestControllerTest { @Autowired private WebApplicationContext webApplicationContext; private MockMvc mockMvc; @Before public void setupMockMvc(){ mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); } @Test public void testTes() throws Exception{ mockMvc.perform(MockMvcRequestBuilders.get("/api/test") // 发出请求 .contentType(MediaType.APPLICATION_JSON_UTF8) //期望的内容类型 .accept(MediaType.APPLICATION_JSON_UTF8)) //期望接收的内容类型 .andExpect(MockMvcResultMatchers.status().isOk()) //期望结果是200 .andDo(MockMvcResultHandlers.print()); // 期望把结果打印出来 } }
Mock测试打印输出的日志:
MockHttpServletRequest:
HTTP Method = GET
Request URI = /api/test
Parameters = {}
Headers = [Content-Type:"application/json;charset=UTF-8", Accept:"application/json;charset=UTF-8"]
Body = null
Session Attrs = {}
Handler:
Type = com.fubin.controller.TestController
Method = public java.lang.Object com.fubin.controller.TestController.test()
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:"application/json;charset=UTF-8"]
Content type = application/json;charset=UTF-8
Body = {"id":2,"name":"fubin","age":28,"url":"https://fubin.org.cn"}
Forwarded URL = null
Redirected URL = null
Cookies = []