-Dspring.profiles.active JVM 옵션 값으로 kindergarten을 주고 앞 예제를 실행하면 예상했던 결과가 출력됩니다.
Food: Milk Food: Biscuits
물론 -Dspring.profiles.active JVM 옵션을 대체할 수 있는 구성 애너테이션이 있지만, 이는 테스트 클래스에서만 사용할 수 있습니다. 스프링 애플리케이션 테스트는 13장에서 다루므로 여기에서는 상세한 내용을 다루지는 않을 것입니다. 하지만 예제 코드는 살펴보겠습니다.
예제 4-80 테스트 클래스에서 프로파일 활성화([[profile]] ProfilesJavaConfigTest.java)
package com.apress.prospring5.ch4.config; import com.apress.prospring5.ch4.FoodProviderService; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes={KindergartenConfig.class, HighschoolConfig.class}) @ActiveProfiles("kindergarten") public class ProfilesJavaConfigTest { @Autowired FoodProviderService foodProviderService; @Test public void testProvider(){ assertTrue(foodProviderService.provideLunchSet() != null); assertFalse(foodProviderService.provideLunchSet().isEmpty()); assertEquals(2, foodProviderService.provideLunchSet().size()); } }