Перед переходом на Spring Boot 2.1 у нас было несколько тестов контроллеров в наших сервисах с использованием @WebMvcTest
в сочетании с @AutoConfigureMockMvc
:
@WebMvcTest(SomeController.class)
@AutoConfigureMockMvc(secure = false)
public class SomeControllerTests { ... }
Это привело к тому, что конфигурация Spring Security былаотключено, и вы можете запускать MVC-тесты без использования OAuth / JWT.
В Spring Boot 2.1 атрибут secured
устарел, а в примечаниях к выпуску отмечается, что
[...] @WebMvcTest ищет bean-компонент WebSecurityConfigurer [...].
Чтобы избежать устаревшего атрибута 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 более компактный способ определения таких тестов?