编程语言
首页 > 编程语言> > java – 没有为Cucumber runner注入的Spring依赖项

java – 没有为Cucumber runner注入的Spring依赖项

作者:互联网

我有一些使用SpringJUnit4ClassRunner的测试用例,它使用@Resource注释来标记注入变量.

@Resource用作另一个可能在将来使用的DI框架.
(@Resource vs @Autowired)

现在我开始使用Cucumber runner编写BDD测试用例.然而DI似乎没有发生. (@Autowired有效但不是@Resource)任何人都知道为什么不呢?

解决方法:

(我假设你正在使用Cucumber-JVM)

而不是使用SpringJUnit4ClassRunner,您应该使用Cucumber运行器.

@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"/>

运行测试时,您应该看到Spring加载cucumber.xml然后导入context.xml.

标签:cucumber-jvm,java,spring,dependency-injection,bdd
来源: https://codeday.me/bug/20190902/1788948.html