【发布时间】:2018-11-20 09:20:44
【问题描述】:
在迁移到 Spring Boot 2.1 之前,我们在服务中使用 @WebMvcTest 和 @AutoConfigureMockMvc 进行了一些控制器测试:
@WebMvcTest(SomeController.class)
@AutoConfigureMockMvc(secure = false)
public class SomeControllerTests { ... }
这会导致 Spring Security 配置被禁用,您可以在不模拟 OAuth/JWT 的情况下运行 MVC 测试。
在 Spring Boot 2.1 中,secured 属性已被弃用,发行说明中提到
[...] @WebMvcTest 查找 WebSecurityConfigurer bean [...]。
为了避免被弃用的secured 属性和WebSecurityConfigurer 的加载,我们将测试重写为:
@WebMvcTest(
value = SomeController.class,
excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = WebSecurityConfigurer.class),
excludeAutoConfiguration = MockMvcSecurityAutoConfiguration.class)
public class SomeControllerTests { ... }
问题是:Spring Boot 2.1 中是否有更紧凑的方式来定义此类测试?
【问题讨论】:
标签: spring-boot