더북(TheBook)

-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());
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.