728x90
@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
728x90
'[JPA] > JPA' 카테고리의 다른 글
[JPA] 프록시의 필드값을 조회 때는 get 방식으로 조회하자! (0) | 2022.06.07 |
---|---|
[JPA] N+1 문제 (즉시 로딩 / 지연 로딩 / 일반 Join / Fetch Join) (0) | 2022.05.02 |
[JPA] 엔티티의 필드 컬렉션을 생성과 동시에 초기화 하는 이유 (0) | 2022.04.06 |