使用MockMvc做controller接口测试

 @Test
    public void test() throws Exception {
        //请求参数
        String requestInfo = "{ \"app_key\": \"*********\", \"cust_account\": \"********\",\"product_key\": \"*****\"}";
        this.mockMvc
                .perform(post("/queryPhoneResource").accept(MediaType.APPLICATION_JSON)
                        .content(requestInfo))
                .andDo(print())
                //添加断言
                .andExpect(status().isOk());
    }

打印结果

MockHttpServletRequest:
         HTTP Method = POST
         Request URI = /queryPhoneResource
          Parameters = {}
             Headers = {Accept=[application/json]}

             Handler:
                Type = com.***.controller.***

               Async:
   Was async started = false
        Async result = null

  Resolved Exception:
                Type = null

        ModelAndView:
           View name = null
                View = null
               Model = null

            FlashMap:

MockHttpServletResponse:
              Status = 200
       Error message = null
             Headers = {flag=[0000], desc=[成功]}
        Content type = null
                Body = {"flag":"0000","desc":"æå","data":{"surplusResources":"24000","afterChargingResources":"500"}}
       Forwarded URL = null
      Redirected URL = null
             Cookies = []

desc内容乱码,解决方案response设置编码即可

ResultActions resultActions = this.mockMvc.perform(post(requestUrl)
                                            .accept(MediaType.APPLICATION_JSON)
                                            .content(requestParam));
        resultActions.andReturn().getResponse().setCharacterEncoding("UTF-8");
        //添加断言
        resultActions.andDo(print()).andExpect(status().isOk());

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐