2012-05-12 2 views
3

SpringJUnit4ClassRunner를 사용하여 @Resource 주석을 사용하여 주입을위한 플래그를 지정하는 기존 테스트 사례가 있습니다.오이 러너에 대한 스프링 종속성이 주입되지 않았습니다.

@Resource를 다른 DI 프레임 워크로 사용하여 향후 사용할 수 있습니다. (@Resource vs @Autowired)

이제 Cucumber 러너를 사용하여 BDD 테스트 케이스를 작성하기 시작했습니다. 그러나 DI는 일어나지 않는 것처럼 보입니다. (@ Autowired 작품은 아니지만 @Resource) 누구든지 왜 안할까요?

+0

'Resource vs Autowired'링크에 따르면 둘 다 봄용 3.0 이후에는 권장되지 않으므로 JSR-330의 'interface Inject'주석으로 이동하는 것이 좋습니다. –

답변

5

대신 SpringJUnit4ClassRunner를 사용

(난 당신이 오이 - JVM을 사용하고 있으리라 믿고있어), 대신 오이 주자를 사용해야합니다.

@RunWith(Cucumber.class) 

는 다음과 같은 종속 관계가 필요합니다을 사용하려면 :

<dependency> 
     <groupId>info.cukes</groupId> 
     <artifactId>cucumber-java</artifactId> 
     <version>${info.cukes.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>info.cukes</groupId> 
     <artifactId>cucumber-junit</artifactId> 
     <version>${info.cukes.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>info.cukes</groupId> 
     <artifactId>cucumber-spring</artifactId> 
     <version>${info.cukes.version}</version> 
     <scope>test</scope> 
    </dependency> 

이 클래스 경로에 cucumber.xml 찾습니다. 이 XML은 단순히 스프링 빈 구성 XML입니다. 광산은 매우 정직하고 포함

<context:component-scan base-package="cucumber.runtime.java.spring"/> 
<context:annotation-config/> 

<!-- wire beans required for testing --> 
<import resource="classpath*:/context.xml"/> 

당신이 봄로드 cucumber.xml을 본 후 의 context.xml를 가져와야합니다 테스트를 실행합니다.

관련 문제