2013-08-02 2 views
1

현재 스프링 애플리케이션의 ApplicationContexts를 분석하는 도구에서 작업 중입니다. 분석을 시작하기 위해 필자는 추상적 인 JUnit-Test 클래스를 구현했다.이 클래스는 대상 애플리케이션의 구체적인 인스턴스에 의해 확장되어야한다. 이렇게하면 추가 컨텍스트 파일에 대한 자체 테스트를 작성하는 것이 쉬워지고 내 도구에서도 컨텍스트 로딩 기능을 사용할 수 있습니다.Spring JUnit 테스트에서 자동 와이어 링을 비활성화하는 방법은 무엇입니까?

나를위한 문제는 Spring 기반 JUnit-Test가 타겟 컨텍스트에서 활성화되지 않은 경우에도 Autowiring을 자동으로 활성화한다는 것입니다. 그러나 분석 결과의 정확성을 보장하기 위해 변경되지 않은 상황이 필요합니다. 분석 도구에 포함되어

내 추상 테스트 클래스는 다음과 같습니다

@RunWith(SpringJUnit4ClassRunner.class) 
public abstract class AbstractContextLoader implements ApplicationContextAware { 

    private ApplicationContext applicationContext; 

    @Test 
    public void analyseContext() { 
     SpringContextAnalysis.startApplication(applicationContext); 
    } 

    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { 
     this.applicationContext = applicationContext; 
    } 
} 

구체적인 구현은 다음과 같이 수 :

@ContextConfiguration(locations="context.xml") 
public class ContextAnalysis extends AbstractContextLoader { 
} 

자동을 사용하지 않도록 설정하는 것이 가능 Spring 기반의 JUnit-Test를 사용하면서 Autowiring- Components의 인스턴스화?

답변

0

어쩌면 개체에 저장하고 필요할 때 캐스팅해야합니까? setter 메서드의 매개 변수를 사용하여 동일한 작업을 수행해야합니다.

그렇지 않으면 @Autowired(required=false)으로 주석을 달아 볼 수는 있지만 제대로 작동하는지는 의심 스럽습니다.

관련 문제