如何解决如何在 BeforeStep 黄瓜步骤定义中使用 Autowired
当我在步骤定义的 NullPointerException
黄瓜方法中使用 @Autowired
时,我得到 @BeforeStep
。我在这里做错了什么?
请在下面找到我的代码:
RunTest.java
import io.cucumber.junit.platform.engine.Cucumber;
@Cucumber
public class RunTest {
}
CucumberSpringConfig.java
import io.cucumber.spring.CucumberContextConfiguration;
import org.springframework.boot.test.context.SpringBoottest;
@CucumberContextConfiguration
@SpringBoottest(classes = DemoApplication.class)
public class CucumberSpringConfig {
}
MyStepdefs.java
import io.cucumber.java.BeforeStep;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
public class MyStepdefs {
//@Autowired Environment environment;
Environment environment;
MyStepdefs(Environment environment) {
this.environment = environment;
}
@BeforeStep
public static void beforeStep() {
System.out.println("beforeStep method");
String path = environment.getProperty("spring.security.oauth2.token-uri");
System.out.println("path: " +path);
}
}
pom.xml
<!-- cucumber plugins -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>6.6.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>6.6.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-spring</artifactId>
<version>6.6.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>datatable</artifactId>
<version>3.4.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit-platform-engine</artifactId>
<version>6.6.1</version>
<scope>test</scope>
</dependency>
例外:
步骤失败 java.lang.NullPointerException 在 com.demo.test.step.MyStepdefs.beforeStep(MyStepdefs.java:33)
解决方法
注解 @BeforeStep
步骤在静态方法上。这不适用于 @Autowired
,因为静态方法独立于对象实例化,并且在实例化期间使用 @Autowired
进行 Spring 依赖注入。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。