Spring security + jwt를 이용한 로그인 처리
https://gksdudrb922.tistory.com/217
Mock을 이용한 controller 테스트 시행착오
테스트 클래스에 @WebMvcTest
어노테이션을 사용하는데, 따로 컨트롤러를 지정하지 않으면 다른 컨트롤러에서 사용하는 빈을 찾을 수 없다는 오류가 나온다.
따라서 다음과 같이 범위를 한정시켜줘야한다.
jpa를 사용하며 공통 & 자동으로 관리해주는 Auditing 클래스를 만들어놓았는데 이것을 @SpringBootApplication
과 함께 등록해놓은 것이 문제였다.
Spring 컨테이너를 요구하는 테스트는 가장 기본이되는 --Application 클래스가 항상 로드되는데, @EnableJpaAuditing
이 해당 클래스에 등록되어 있어 모든 테스트들이 항상 JPA 관련 Bean들을 필요로 하는 것이였다.
지금까지 사용해봤던 @SprignBootTest
에서는 전체 컨텍스트를 로드하고 JPA를 포함한 모든 Bean을 주입받기 때문에 에러가 발생하지 않지만,
@WebMvcTest
같은 슬라이스 테스트는 JPA 관련 Bean들을 로드하지 않기 때문에 에러가 발생하였다.
어플리케이션에서 @EnableJpaAuditing
을 삭제 후 configuration클래스를 따로 분리하자.
중간에 실수로 검증 오류 응답 객체에 @Getter
를 빼먹어서 출력이 안됐다. Response body에 사용되기 위해서 기본적으로 get 메서드가 필요하다.