使用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());