本文已参与「新人创作礼」活动,一起开启掘金创作之路。
如何测试Controller对外提供的接⼝
- 在测试类中添加注解 @AutoConfigureMockMvc
- 注⼊一个MockMvc类
MockMvc相关的几个常用api
perform执⾏行一个RequestBuilder请求
andExpect:添加ResultMatcher->MockMvcResultMatchers验证规则
andReturn:最后返回相应的MvcResult->Response
测试api用例
@RunWith(SpringRunner.class) //底层⽤用junit SpringJUnit4ClassRunner
@SpringBootTest(classes={SpringbootExApplication.class})//启动整个springboot⼯工程
@AutoConfigureMockMvc
public class TestEx {
@Autowired
private MockMvc mockMvc;
@org.junit.Test
public void testMock() throws Exception {
MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/data/api/testConfigByBean"))
.andExpect(MockMvcResultMatchers.status().isOk()).andReturn();
int status = mvcResult.getResponse().getStatus();
System.out.println(status);
MockHttpServletResponse response = mvcResult.getResponse();
// 这里需要进行编码格式为utf-8,否则可能会出现乱码
String result = response.getContentAsString(Charset.forName("utf-8"));
System.out.println(result);
}
}
输出的结果
200
{"code":0,"data":{"name":"test","target":"resource/config/testconfig.txt"},"msg":"success!"}