자바/스프링(Spring)

스프링(Spring) 테스트 환경에서 @PostConstruct 비활성화

류창 2022. 10. 12. 18:08
반응형

문제 발생:

 

 

새로운 옥션 서비스를 개발했으니,  테스트코드를 한번 짜보려는 상황 입니다.

 

 

테스트 요약:

1.옥션 하나를  제목을 지정한 뒤 생성

2. 옥션 꺼내기

3. 꺼낸 옥션과  1번에서 생성한 옥션의 제목이 동일한지 비교

 

?!!!!?!!!!!

아니.. 왜안됨?

 

 

알고보니 문제가  테스트 부분이아닌,  메인(local환경) 부분 에서 더미데이터로 생성한

@PostConstruct 때문이였다.

 

 

 

 

해결방법:   @Profile을 사용하여  메인, 테스트 환경을 분리하자.

 

즉, 내가 쓸 @PostConstruct는  메인환경에서만 사용할것이니,

메인 은 메인환경으로   테스트는 테스트로 설정하는것이다.

 

1.테스트 환경에서 쓸  application.properties 를  복사 붙이기하자.

 

 

2. 그 후,  로컬 환경  프로퍼티와,  테스트 환경 프로퍼티를 분리하자.

 

메인 환경부분
테스트 환경 부분

 

3. @PostConstruct를 사용한 클래스에다가  로컬환경에서만 쓴다고 설정한다.

 

@Profile("prod") 를 통하여,

메인 환경 (로컬환경) 에서만 사용한다고 선언한다.

 

 

 

해결완료!

반응형