[JPA] @DataJpaTest + 테스트 DB 변경
@DataJpaTest
@DataJpaTest는 JPA 테스트를 위한 애노테이션이다. 다른 설정은 비활성화시키고, 오직 JPA 테스트와 관련된 설정들만 적용시킨다.
테스트 DB 변경하기
기본 전략으로는 in-memory dbf르 사용한다. 하지만 @AutoConfigureTestDatabase 애노테이션을 통해 기본 테스트 db를 변경할 수 있다.
@AutoConfigureTestDatabase의 'replace' 속성값으로 기본 테스트 db를 변경할 수 있다.
- ANY : 자동 구성 또는 수동 정의 여부에 따라 DataSoruce 교체 (default)
- AUTO_CONFIGURED : 자동 설정된 경우에만 DataSORUCE 교체
- NONE : 기본 DataSorucr를 교체하지 않는다.
즉, 우리가 application.yml에 설정을 해도 Replace.ANY 설정에 의해 DataSorucr를 in-memory 설정으로 변경한다.
따라서 이를 막고 특정 DB 환경으로 테스트 하고자 하면 @AutoConfigureTestDatabase(replace = Replace.NONE) 를 클래스 레벨에 적용하면 된다.
예)
@DataJpaTest
@AutoConfigureTestDatabase(replace = Replace.NONE)
class ProductRepositoryTest {
...
}
👀 참고 자료
https://emgc.tistory.com/143?category=930884
[JPA] @DataJpaTest 사용할 DB 변경
목적 @DataJpaTest에 대해 알아보고 DB설정을 변경하고자 함 목차 @DataJpaTest란? 테스트 DB 변경하기 1. @DataJpaTest란? 주석 내용을 보면 아래와 같이 나와있다. Annotation for a JPA test that focuses only..
emgc.tistory.com