4회차

CJY·2023년 5월 18일
0

프로젝트1

목록 보기
4/8

Spring security + jwt를 이용한 로그인 처리
https://gksdudrb922.tistory.com/217

Mock을 이용한 controller 테스트 시행착오

  1. 테스트 클래스에 @WebMvcTest어노테이션을 사용하는데, 따로 컨트롤러를 지정하지 않으면 다른 컨트롤러에서 사용하는 빈을 찾을 수 없다는 오류가 나온다.

    따라서 다음과 같이 범위를 한정시켜줘야한다.

jpa를 사용하며 공통 & 자동으로 관리해주는 Auditing 클래스를 만들어놓았는데 이것을 @SpringBootApplication과 함께 등록해놓은 것이 문제였다.

Spring 컨테이너를 요구하는 테스트는 가장 기본이되는 --Application 클래스가 항상 로드되는데, @EnableJpaAuditing이 해당 클래스에 등록되어 있어 모든 테스트들이 항상 JPA 관련 Bean들을 필요로 하는 것이였다.

지금까지 사용해봤던 @SprignBootTest에서는 전체 컨텍스트를 로드하고 JPA를 포함한 모든 Bean을 주입받기 때문에 에러가 발생하지 않지만,
@WebMvcTest같은 슬라이스 테스트는 JPA 관련 Bean들을 로드하지 않기 때문에 에러가 발생하였다.


어플리케이션에서 @EnableJpaAuditing을 삭제 후 configuration클래스를 따로 분리하자.

중간에 실수로 검증 오류 응답 객체에 @Getter를 빼먹어서 출력이 안됐다. Response body에 사용되기 위해서 기본적으로 get 메서드가 필요하다.

profile
열심히 성장 중인 백엔드

0개의 댓글