如何使用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 是我司自定义的基础返回报文,里面有统一的状态码,这里可以校验请求是否成功。

上一篇下一篇

猜你喜欢

热点阅读