尝试在另一个类中重用一个方法,像这样初始化该类:

public class SettingsStepDefs {
public Scenario scenario;

@Autowired
public AndroidBase androidBase;
public GenericStepDefs genericStepDefs;


@Before
public void before(Scenario scenario) {
    this.scenario = scenario;
    genericStepDefs = new GenericStepDefs();


然后使用该方法

genericStepDefs.iTapDone();


但是我在上面的行中得到了一个空指针异常。

iTapDone()中的代码可以正常工作,如果我复制该行并在SettingsStepDefs上使用它,则可以正常工作。

先感谢您。

最佳答案

您需要在步骤之间共享GenericStepDefs的实例。由于未设置变量genericStepDefs,因此您将获得NullPointerException。

由于使用了注释@Autowired,因此您似乎正在使用Spring。考虑与Spring for Cucumber共享状态。这是通过为Cucumber-JVM设置Spring来完成的。依赖

<dependency>
    <groupId>info.cukes</groupId>
    <artifactId>cucumber-spring</artifactId>
    <version>1.2.5</version>
</dependency>


是必需的。

07-24 09:32