MockMvc:相当于http客户端、断言、响应等
之前讲的是调用controller层或service层方法,但是对外使用时是一个url,以域名加端口路径的方式返回接口的,使用mockMvc也可以模拟路径来进行测试
- 如何测试Controller对外提供的接口
- 增加类注解 @AutoConfigureMockMvc
- 注入一个MockMvc类
- 相关API :
- perform执行一个RequestBuilder请求
- andExpect:添加ResultMatcher->MockMvcResultMatchers验证规则
- andReturn:最后返回相应的MvcResult->Response
- 案例:VideoController 视频列表接口 单元测试
@AutoConfigureMockMvc //开启自动注入mvc配置
public class VideoTest {
//注入MockMvc
@Autowired
private MockMvc mockMvc;
@Test
public void testVideoListApi() throws Exception{
//传入一个requestBuilder MockMvcRequestBuilders:构建器 构建http请求
//发出请求后 判断响应码
MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/api/v1/pub/vide/list