백엔드/TDD

내장된 H2 Database 로 Repository 테스트하기

infitry 2023. 3. 26. 10:57
반응형

내장 H2 DB로 Repository 테스트 코드 작성하는 방법에 대해 알아보겠습니다.

 

TestJpaConfig.class를 생성하여 @EnableJpaAuditing 을 통해
JpaAuditing을 활성화합니다. (JpaAuditing 을 안 쓰시면 필요 없습니다.)

TestJpaConfig.class 에는 다른 코드는 없고 클래스 위에 어노테이션만 추가합니다.

@EnableJpaAuditing
@TestConfiguration

 

테스트할 XxxxTest.java 클래스 위에 하단 어노테이션을 추가합니다.

@DataJpaTest
@Import({TestJpaConfig.class})
@AutoConfigureTestDatabase(connection = EmbeddedDatabaseConnection.H2)

 

@DataJpaTest 어노테이션을 추가하게 되면 수많은 어노테이션이 함께 추가되는데

그중 @AutoConfigureTestDatabase라는 어노테이션의 connection 기본 값이 NONE으로 되어있습니다.

이렇게 설정된 경우 테스트 패키지 쪽에 datasource에 대한 아무런 설정을 하지 않게 되면 기존 애플리케이션에 설정한 Datasource를 바라보게 되는 것 같습니다.

딱히 실제 Database에 저장되는 것은 원하지 않고 인메모리 DB에서 테스트만 진행하고 삭제할 거면 굳이 영속성이 필요하지 않아

@AutoConfigureTestDatabase 어노테이션을 추가하여 connection을 재정의 해줍니다.

 

이렇게 하면 테스트 실행 시 따로 설정을 하지 않아도H2 데이터베이스에 테이블을 생성하고 테스트 후 테이블을 Drop합니다.

반응형