如何使用SpringMockMvc测试http请求
2018-11-02 本文已影响0人
Kitsuna
@RunWith(SpringRunner.class)
@SpringBootTest(classes = MyApplication.class)
@WebAppConfiguration
public class BaseTest {
@Autowired
protected WebApplicationContext webApplicationContext;
protected MockMvc mockMvc;
@Before
public void setMockMvc() {
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}
@Test
public void contextLoads() {
System.out.println("=================================== Env start success! ===================================");
}
protected String perform(String url, Object request) throws Exception {
return mockMvc.perform(
// 请求的url,请求的方法
post(url, request)
// 数据的格式
.contentType(MediaType.APPLICATION_JSON)
.content(GsonUtil.getInstance().toJson(request)))
// 打印出请求和相应的内容
.andDo(print())
// 返回的状态是200
.andExpect(status().isOk())
// 校验调用是否成功
.andExpect(mvcResult -> {
BaseResponse br = GsonUtil.getInstance().fromJson(mvcResult.getResponse().getContentAsString(), BaseResponse.class);
if (!Constant.SUCCESS_CODE.equals(br.getCode())) {
throw new RuntimeException(br.getMessage());
}
})
// 将相应的数据转换为字符串
.andReturn().getResponse().getContentAsString();
}
}
BaseResponse 是我司自定义的基础返回报文,里面有统一的状态码,这里可以校验请求是否成功。