2

对于在带有 @Given 注释的方法中实例化的实例变量,我得到 NullPointerException,如下面的“test”代码所示:

import com.qmetry.qaf.automation.step.QAFTestStepProvider;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;

@QAFTestStepProvider
public class Steps
{
    String test;

    @Given("^Step 1$")
    public void step1()
    {
        test = "test_string";
    }

    @Then("^Step 2$")
    public void step2()
    {
        String[] list = test.split("_");
    }
}

我已经看到各种示例(倒数第二个代码示例)和资源(此答案的第一段)说这应该没问题,因为只有在尝试在步骤定义 Java 类之间共享状态时才需要 DI,而不是在一个类中本身。

有什么我遗漏的东西还是有办法让它工作?

4

1 回答 1

0

根据qaf-release-notes-2.1.9,您需要设置step.provider.sharedinstancetrue(默认值为false)。在应用程序属性中,您可以指定

step.provider.sharedinstance=true

于 2017-03-08T18:50:18.073 回答