테스트에서 사용할 데이터베이스를 설정한다. @AutoConfigureTestDatabase 의 기본 설정값은 Replace.Any 로 기본적으로 내장된 임베디드 데이터베이스를 사용한다. 설정값을 Replace.NONE 으로 설정하면 프로파일 환경값에 따라 데이터 소스가 결정된다.

아래의 예시는 우아한테크코스 레벨3 에서 진행한 모모 어플리케이션 소스코드이다.

backend/src/test/java/com/woowacourse/momo/group/domain/group/GroupRepositoryTest.java

package com.woowacourse.momo.group.domain.group;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase.Replace;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;

@DataJpaTest
@AutoConfigureTestDatabase(replace = Replace.NONE)
class GroupRepositoryTest {

		...
}

https://github.com/woowacourse-teams/2022-momo/blob/main/backend/src/test/java/com/woowacourse/momo/group/domain/group/GroupRepositoryTest.java

모모 서비스에서는 설정 파일을 yml 파일을 이용하기 때문에 resources/application-datasource.yml 에 실행하고 싶은 데이터베이스를 설정해둔다.

backend/src/test/resources/security/application-datasource.yml

spring:
  datasource:
    username: sa
    url: jdbc:h2:~/momotest;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
  jpa:
    properties:
      hibernate.dialect: org.hibernate.dialect.H2Dialect
    database-platform: org.hibernate.dialect.H2Dialect
    hibernate.ddl-auto: create-drop

https://github.com/woowacourse-teams/2022-momo/blob/main/backend/src/test/resources/security/application-datasource.yml

그러면 h2 데이터베이스를 사용하여 테스트할 수 있게 된다.