@WebMvcTest(SomeController.class)
@Import(SecurityConfig.class)
public class SomeControllerTest {
private mockMvc;
@Autowired
private WebApplicationContext context;
@Before
public void setUp() {
this.mockMvc = MockMvcBuilders
.webAppContextSetup(context)
.apply(springSecurity())
.build();
}
}
@WebMvcTest will auto-configure the Spring MVC infrastructure and limit scanned beans to @Controller, @ControllerAdvice, @JsonComponent, Filter, WebMvcConfigurer and HandlerMethodArgumentResolver. Regular @Component beans will not be scanned when using this annotation.
위 내용을 정리하면
@WebMvcTest는 컴포넌트 스캔을 하는 영역이 제한적이다 (@SpringBootTest는 프로젝트 전체를 싹 다 훑는다)
이 때, 따로 Spring Security 관련 설정을 주입해주지 않는다면 @WebMvcTest는 시큐리티 관련 설정을 디폴트 값으로 설정한다 (auto configuration to default setting).
여기서 디폴트 설정 중 하나가, 모든 url을 secure 설정하는 것.