[java] TestContainers로 샘플 데이터 생성하기
TestContainers란?
TestContainers는 자바 애플리케이션을 위한 도커 기반의 통합 테스트 라이브러리입니다. 이 라이브러리를 사용하면 테스트 중에 임시로 도커 컨테이너를 생성하여 데이터베이스나 메시지 브로커 등 외부 종속성을 테스트할 수 있습니다.
TestContainers를 사용하여 샘플 데이터 생성하기
TestContainers를 사용하여 샘플 데이터를 생성하는 방법을 살펴보겠습니다. 다음은 MySQL 데이터베이스를 사용하는 예제입니다.
먼저, pom.xml
파일에 TestContainers 의존성을 추가합니다:
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<version>1.15.3</version>
<scope>test</scope>
</dependency>
다음으로, 테스트 클래스를 작성하고 @Container
어노테이션을 사용하여 MySQL 컨테이너를 생성합니다:
import org.junit.jupiter.api.Test;
import org.testcontainers.containers.MySQLContainer;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
@Testcontainers
public class SampleDataTest {
@Container
private MySQLContainer mySQLContainer = new MySQLContainer()
.withDatabaseName("test")
.withUsername("root")
.withPassword("password");
@Test
public void whenSampleDataGenerated_thenDataExists() {
// 데이터 생성 및 확인 로직 작성
}
}
위의 예제에서는 MySQL 컨테이너를 생성하고 withDatabaseName
, withUsername
, withPassword
메서드를 사용하여 데이터베이스와 인증 정보를 설정합니다.
whenSampleDataGenerated_thenDataExists
메서드에서는 샘플 데이터를 생성하고 확인하는 로직을 작성하면 됩니다.
TestContainers는 테스트 실행되기 전에 컨테이너를 시작하고 테스트가 완료되면 컨테이너를 중단합니다. 이를 통해 테스트 데이터를 생성하고 정리하는 작업이 자동으로 이루어집니다.
참고 문헌: