테스트 수행 시, 각 phase별로 설정이 다른 경우나 특정 phase인 상황을 테스트하고 싶을 수 있다.
그런 경우 어떻게 설정하는지 알아보도록 하자.
@Profile
빈이나, 컴포넌트에 프로필을 구분하여 등록할 수 있게 해주는 어노테이션
@TestConfiguration
public class TestConfiguration {
@Bean
@Profile("beta")
public DataSource DataSource() {
return new Log4jdbcProxyDataSource(hikariDataSource());
}
@Bean
@Profile("alpha")
public DataSource testDataSource() {
return new HikariDataSource(hikariDataSource());
}
private HikariDataSource hikariDataSource() {
return new HikariDataSource(HikariConfig());
}
}
이렇게 설정해 놓으면
spring application 실행 시 spring.profiles.active=alpha로 지정한 경우와 spring.profiles.active=beta로 지정한 경우 각각 다른 DataSource가 Bean에 등록되게 된다.