gpt4 book ai didi

java - 没有为 Cucumber runner 注入(inject) Spring 依赖项

转载 作者:搜寻专家 更新时间:2023-11-01 02:30:31 24 4
gpt4 key购买 nike

我有使用 SpringJUnit4ClassRunner 的现有测试用例,它使用 @Resource 注释来标记要注入(inject)的变量。

@Resource 被用作 future 可能使用的另一个 DI 框架。( @Resource vs @Autowired )

现在我已经开始使用 Cucumber runner 编写 BDD 测试用例。然而,DI 似乎没有发生。 (@Autowired 有效但@Resource 无效)有人知道为什么不吗?

最佳答案

(我假设您使用的是 Cucumber-JVM)

您应该使用 Cucumber runner,而不是使用 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"/>

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

关于java - 没有为 Cucumber runner 注入(inject) Spring 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10564240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com