시스템에 다양한 단위 테스트 클래스가 있으며 모두 AbstractContextTest
이라는 중앙 테스트 클래스를 확장합니다. 고 말했다 추상 슈퍼 클래스는 일반적으로 다음과 같습니다 : 여기에서 주목해야 할Spring Test - Project 당 JavaConfig
@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class, DirtiesContextTestExecutionListener.class})
@ContextConfiguration(locations = {"/TestContext.xml"})
public class AbstractContextTest {
// Various utility methods that would be useful in a unit test.
...
}
중요한 것은이 @ContextConfiguration
라인입니다. locations
속성을 사용하여 XML 파일에 저장된 테스트 응용 프로그램 컨텍스트를로드합니다. 상대 경로를 사용하면 다음 작업을 수행 할 수 있습니다.
- 내 수퍼 클래스를 자체 프로젝트에 배치합니다.
AbstractContextTest
프로젝트를 테스트 수준 종속성으로 사용하도록 다른 프로젝트를 구성합니다.- 내 프로젝트의 각 테스트 리소스에 동일한 이름의
TestContext.xml
을 배치합니다. - 모든 유닛 테스트를 실행할 때 각 프로젝트는 상대적 경로 지정으로 인해 로컬
TestContext.xml
을 사용합니다. - 모두 세계와 맞습니다.
이제 실제 질문을 위해 : 스프링 XML 응용 프로그램 컨텍스트의 중단 시절부터 스프링 용 JavaConfigs의 새로운 세상으로 이동하고 싶습니다. 이 패러다임에서 내 상대 경로 솔루션에 해당하는 솔루션이 있습니까? 그렇다면 어떻게 그걸 풀까요?
이 대신 설정 파일 전략 클래스 설정 낫다. 당신은 계층 구조와 함께 플레이해야합니다. 나는 너의 세계가 잘 작동한다고 생각하는 첫번째 방법을 제안한다. [튜토리얼보기] (http://spring.io/blog/2011/06/21/spring-3-1-m2-testing-with-configuration-classes-and-profiles) – Xstian