제목이 이게 맞는지 모르겠다
나도 어떻게 해결했는지 모르기 때문이다
우선 문제상황은 /auth관련하여 구현을
로컬 로그인 및 회원가입 기능 구현 -> 로컬 로그인 및 회원가입 테스트 코드 작성 -> JWT 발급 및 검증 기능 구현 -> OAuth2 로그인 기능 구현
이 순으로 하였다
OAuth2를 적용하는 과정에서 정말 많은 것이 바뀌게 되었고, 다 구현하고 나서 기존의 로컬 로그인 및 회원가입이 정상적으로 작동을 할 지 의문이었다
그래서 회원가입 테스트 코드를 돌려보니 기존에 잘 되었던 테스트코드가 400에러에
"JWT 토큰이 존재하지 않습니다."
이 로그를 내뿜고 있었다
이상해서 postman으로 회원가입을 테스트해보니 잘된다....?
MockMvc가 필터가 적용이 안되는 것을 깨닫고 불꽃 구글링을 진행하게 되었다
스프링 공식문서도 읽어보고, 스택오버플로우, 블로그를 전전하며 다양한 시도를 했는데 너무 간단하게 해결이 되어버렸다
그냥 테스트코드에 새롭게 이 부분을 추가했을 뿐이다
테스트에서 MockMvc를 설정하기 위해 MockMvcBuilders를 사용하고, MockMvcBuilders는 정적 메서드를 2개 사용한다고 한다
webAppContextSetup()은 구성된 컨트롤러를 한 개 이상 포함하는 스프링 애플리케이션 컨텍스트를 사용하여 Mock Mvc를 만든다고 한다
standaloneSetup()은 수동으로 생성하고 구성한 컨트롤러를 한 개 이상 서비스할 MockMvc를 만든다고 한다
그냥 mockMvc를 세팅만 했을 뿐인데 되었다
그전에는 저런 설정 안해놨는데 왜 됐지.....?
+ BeforeAll에서 하려고 했으나
이렇게 빨간줄을 내뱉는 이유로 @BeforeEach에서 실행되도록 함
'Project > Snacks' 카테고리의 다른 글
[Snacks 개발 일기] #7 자체 로그인과 구글 로그인 충돌 방지 (0) | 2022.12.12 |
---|---|
[Snacks 개발 일기] #6 구글 로그인정보를 통해 JWT 토큰 발급하기 (0) | 2022.12.12 |
[Snacks 개발 일기] #4 구글 로그인 적용하기 (0) | 2022.12.02 |
[Snacks 개발 일기] #3 filter에 Response값 지정하기 (0) | 2022.11.27 |
[Snacks 개발 일기] #2 ResponseEntity 적용하기 (0) | 2022.11.17 |