Spring Boot MockMvc Filter 적용

최민길(Gale)·2023년 6월 7일
1

Spring Boot 적용기

목록 보기
20/46

안녕하세요 오늘은 MockMvc 객체에 필터를 적용하는 방법에 대해 포스팅해보도록 하겠습니다.

저번 포스팅에서 커스텀 필터를 만들어 적용하는 과정에서 테스트 시 필터가 제대로 적용되지 않는 문제가 있었습니다.

문제 해결은 단순했습니다. 바로 생성한 MockMvc 클래스에 필터를 추가하는 것입니다. MockMvc 클래스는 실제 서블릿 컨테이너를 사용하지 않고 가상의 서블릿 컨테이너를 이용하여 테스트용으로 시뮬레이션하는 역할을 담당합니다. 따라서 실제 서비스에 필터가 적용되었더라도 MockMvc에서는 가상의 환경에서 진행하기 때문에 필터가 적용되어 있지 않은 상태입니다. 따라서 아래의 코드처럼 MockMvc 객체를 생성 시 .addFilter를 통해 추가하고자 하는 커스텀 필터를 추가해줍니다.

    @BeforeEach
    public void setup() {
        String secret = {secret_key};
        TokenProvider tokenProvider = new TokenProvider(secret,{expired_miliseconds});
        JwtFilter jwtFilter = new JwtFilter(tokenProvider);
        mvc = MockMvcBuilders
                .webAppContextSetup(context)
                .addFilter(jwtFilter)
                .build();
    }
profile
저는 상황에 맞는 최적의 솔루션을 깊고 정확한 개념의 이해를 통한 다양한 방식으로 해결해오면서 지난 3년 동안 신규 서비스를 20만 회원 서비스로 성장시킨 Software Developer 최민길입니다.

0개의 댓글