목표

  • @ContextConfiguration의 용도를 이해한다.

@ContextConfiguration의 용도

  • 테스트에서 context initializer를 사용해서 ApplicationContext를 구성할 때 사용한다.
  • context를 로드하기 위해 필요한 컴포넌트는 locations로 xml 설정 파일을 지정하거나, classes@Configuration 클래스를 지정할 수 있다.
@ContextConfiguration("/test-config.xml") 
class XmlApplicationContextTests {
	// class body...
}
@ContextConfiguration(classes = [TestConfig::class]) 
class ConfigClassApplicationContextTests {
	// class body...
}
  • ApplicationContextInitializer의 구현체를 사용해 구성하고 싶다면, initializers 프로퍼티로 등록할 수 있다.
    • ApplicationContextInitializer: Spring이 ApplicationContext를 초기화 전에 실행하는 콜백 인터페이스
@ContextConfiguration(initializers = [CustomContextInitializer::class]) 
class ContextInitializerTests {
	// class body...
}
  • @ContextConfiguration이 제공하는 기본 loader가 locations, classes, initializer 속성을 가져와서 ApplicationContext를 구성하지만 loader의 커스텀이 필요한 경우가 있다.
@ContextConfiguration("/test-context.xml", loader = CustomContextLoader::class) 
class CustomLoaderXmlApplicationContextTests {
	// class body...
}

참고 자료