2012-05-12 51 views
3

我有使用SpringJUnit4ClassRunner的使用@Resource注释标记变量注入的现有测试用例。未注入黄瓜转轮的春天依赖关系

@Resource被用作另一个DI框架,可能在未来使用。 (@Resource vs @Autowired

现在我已经开始使用Cucumber runner编写BDD测试用例。但DI似乎并未发生。 (@Autowired作品,但不是@Resource)任何人都知道为什么不呢?

+0

根据“Resource vs Autowired”这个链接,他们都不推荐从Spring 3.0开始 - 所以考虑从JSR-330转到'interface Inject'注释。 –

回答

5

(我假设你正在使用黄瓜JVM)

而不是使用基于SpringJUnit4ClassRunner的,你应该使用黄瓜亚军代替。

@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只是一个Spring bean配置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