728x90
Spring Boot 에서 Test 코드를 실행하기 위해서 Test Data 가 필요한 경우가 있다. 최근에는 Liquebase or Flyway 를 이용하여 Test Data 를 초기화 해주는 경우가 많이 있지만, 이런 설정이 되지 않은 경우에는 아래와 같이 @Sql 어노테이션을 사용하면 쉽게 처리 할 수 있다.
이 방법은 org.springframework.test.context.jdbc.Sql 를 이용하는 방법으로 아래와 같이 사용 할 수 있다.
JUnit Test Code 에서 @BeforeClass, @Sql 을 이용하여 Table 을 생성할 schema-h2.sql, data-h2.sql 을 실행하도록 설정한다.
@BeforeClass
@Sql({"classpath:testdb/schema-h2.sql", "classpath:testdb/data-h2.sql"})
public static void setUpBeforeClass() throws Exception {
logger.debug("Test Data Create And Insert!");
}
이렇게 추가를 하면 테스트 코드가 실행 되기 전 Table 과 Data 를 적재가 되어 쉽게 테스트를 할 수 있다.
[전체 코드 예제]
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.PropertySource;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.jdbc.Sql;
import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT
, properties = "spring.profiles.active=testrun"
)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@RunWith(SpringRunner.class)
@ActiveProfiles("testrun")
@PropertySource("classpath:application-testrun.properties")
public class ServiceTest {
private final static Logger logger = LoggerFactory.getLogger(ServiceTest.class);
@Autowired
Service service;
@BeforeClass
@Sql({"classpath:testdb/schema-h2.sql", "classpath:testdb/data-h2.sql"})
public static void setUpBeforeClass() throws Exception {
logger.debug("Test Data Create And Insert!");
}
@Test
public void test01_ServiceTest() {
logger.debug("test01_ServiceTest Run!");
....
}
}
'개발' 카테고리의 다른 글
Kafkacat 을 이용한 Kafka 동작 확인 방법 : kafkacat usage (0) | 2020.06.29 |
---|---|
yargs-parser vulnerability requires manual review Fix Tip (0) | 2020.06.29 |
Torch7 + 2080Ti = nvcc fatal : Unsupported gpu architecture ‘compute_75’ (0) | 2020.06.15 |
Ubuntu 에서 Magic Keyboard 2 사용하기 (0) | 2020.06.15 |
rsync 를 이용하여 폴더 동기화 하기 (0) | 2020.06.09 |