Catching Errors

controller 테스트 코드 에러(JPA문제) - 재발 방지를 위한 config 클래스 생성

S_N_Y 2024. 2. 19. 18:28

 

로그인 페이지의 controller 테스트 코드를 작성하고

테스트를 돌리려는데 이러한 오류가 발생했다.

 

#1 문제점 인식🧐

jpa관련된 오류가 터지는 모습

 

#2 추정 - 오류가 터지는 이유

보아하니 main 메소드가 실행되는 application쪽에 보면 annotation으로 달아놓은 @EnableJpaAuditing이 문제가 되는 것이다.

내가 controller쪽 테스트를 돌리고 있는데 repository쪽, 즉 JPA쪽은 필요가 없는 상태이다.

그래서 @EnableJpaAuditing 때문에 방해가 되는 것이라는 것을 깨닫게 되었다.

 

mian application쪽의 모습

 

#3 해당 오류 해결 방법

 

- Jpa config 만들기 👍

1. 먼저 main 메소드에서 방해되는 @EnableJpaAuditing 삭제 

 

2. 따로 JpaConfig.java 파일 만들어서 여기에 @EnableJpaAuditing 담아주고,  @EnableJpaAuditing 설정을 등록하고 활성화하기 위해서 위에 @Configuration도 달아준다.

 

결과 :

제대로 controller 테스트 코드가 실행되는 모습을 확인할 수 있다.

 

#4 해당오류의 재발방지에 대한 고민 💭

이런 식으로 테스트 코드까지 작성되는 점까지 고려하여 main 메소드에 @EnableJpaAuditing을 붙이는 것이 아니라 따로 config 클래스를 만들어서 따로 관리해야하는 점을 얻었고 이 뿐만 아니라 해당 오류를 접하면서 기능별로 세분화하여 클래스를 나눠놓는 것이 유지보수하지 좋으니 해당 기능은 딱 그 해당 기능만 있는 클래스로 나누기 위한 방향으로 공부해보면 좋을 것 같다.