测试MVC
Spring Boot可以单独测试 Controller 代码,用来验证与 Controller 相关的URL路径映射、
文件上传、参数绑定、参数校验等特性 可以通过@WebMvcTes 来完成 MVC单元测试,脚手
架如下所示
- WebMvcTest 表示这是一个MVC 测试,其参数可以传入多个待测试的Controller 类,
这里要测试的类是 UserController; - MockMvc 是 Spring 提供的专门用于测试 Spring MVC 类。
- @MockBean 用来模拟实现 因为在 Spring MVC 测试中, Spring 容器并不会初始化
@Service 注解的类, 因此我们需要模拟 UserController 调用的所有 Service,这里就是
UserService; - perform 完成一次MVC 调用 Spr ng MVC Test 是 Servlet 容器内的 种模拟测试,实
际上并不会发起 次真正的 HTTP 调用 - get 方法模拟了一次 Get 请求,请求地址是/user/ {id },这里的${id }会被其后的参数 userld
代替,因此请求地址是/user/10; - andExpect 表示请求期望的返回结果,比如返回的内容或者 HTTP 响应头等。