MockMvc是服务端 Spring MVC测试支持的主入口点。可以用来模拟客户端请求,用于测试
发送JSON数据
// 获取请求头信息
String token = redisTemplate.opsForValue().get("Authorization");
MvcResult mvcResult = mockMvc
// 请求方式 + 请求路径(不用谢虚拟路径)
.perform(MockMvcRequestBuilders.post("/system/user/export")
// 携带请求头信息token
.header("Authorization", token)
.accept(MediaType.parseMediaType("application/json;charset=UTF-8"))
// 参数类型为JSON
.contentType(MediaType.APPLICATION_JSON)
// 参数数据(JSON)
.content(JSON.toJSONString(sysConfig)))
// 断言:判断状态码 status().isBadRequest():400错误请求 status().isOk():正确 status().isNotFound():验证控制器不存在
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print()).andReturn();
// 获取响应结果
MockHttpServletResponse response = mvcResult.getResponse();
// 打印作为字符串
System.out.println(response.getContentAsString());
发送表单数据
// 获取请求头信息
String token = redisTemplate.opsForValue().get("Authorization");
MvcResult mvcResult = mockMvc
// 请求方式 + 请求路径(不用谢虚拟路径)
.perform(MockMvcRequestBuilders.post("/system/user/export")
// 携带表单信息
.param("username","lixianahe")
// 携带请求头信息token
.header("Authorization", token)
.accept(MediaType.parseMediaType("application/json;charset=UTF-8")))
// 断言:判断状态码 status().isBadRequest():400错误请求 status().isOk():正确 status().isNotFound():验证控制器不存在
.andExpect(MockMvcResultMatchers.status().isOk())
// 解析返回的json字段中的属性值是否与断言一样: 断言JSON字符串中email的值为12345@qq.com
.andExpect(MockMvcResultMatchers.jsonPath("$.email").value("123456@qq.com"))
.andDo(MockMvcResultHandlers.print()).andReturn();
// 获取响应结果
MockHttpServletResponse response = mvcResult.getResponse();
// 打印作为字符串
System.out.println(response.getContentAsString());