当前位置: 首页 > 知识库问答 >
问题:

无法在QAFTestStepProvider类中传递实例变量

佴涵蓄
2023-03-14

对于在带有@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("_");
    }
}

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

我有没有遗漏什么,或者有没有办法让这件事奏效?

共有1个答案

沈自珍
2023-03-14

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

step.provider.sharedinstance=true

 类似资料:
  • 我正在使用GAE部署我的应用程序,我想把一些环境变量传递给我的GAE实例。例如,每次我使用DB时,分配当前是这样的: 这很好,但问题是它是一个共享代码,每次有人进行本地测试时,它都会更改路径,并将更改推送到存储库。当有人拉动新的更改时,它需要更改以发出db请求,因为每个人都有不同的套接字更改路径。因此,我创建了以下声明: 因此,如果某个人的系统中有一个环境变量,那么它会接受该变量并避免绝对路径。问

  • 对象的实例变量及方法 实例变量(Instance Variables)是当你使用它们时,才会被建立的对象。因此,即使是同一个类的实例,也可以有不同的实例变量。 从技术层面上来看,一个对象(实例)只是存储了它的实例变量和其所属类的引用。因此,一个对象的实例变量仅存在于对象中,方法(我们称之为实例方法(Instance Methods))则存在于对象所属的类中。这也就是为什么同一个类的实例都共享类中的

  • 本文向大家介绍Ruby类实例变量、类实例方法和类变量、类方法的区别,包括了Ruby类实例变量、类实例方法和类变量、类方法的区别的使用技巧和注意事项,需要的朋友参考一下 在Ruby中类实例变量、类实例方法和类变量、类方法的区别比较微妙,而且用法也有相当的区别。本文探讨一下他们的定义和基本的使用场景,以抛砖引玉...   一.类实例变量和类变量   类变量大家都很熟悉了,就是在类定义中用@@开头的变量

  • 我得到了这个错误: “变量'a'已赋值,但其值永远不可用”

  • 问题内容: 我只是将一个工作程序重写为一个类中的函数,然后一切都搞砸了。 首先 ,在课程的部分中,我用声明了一堆变量。 通过使用该函数,是否应该能够在类的每个函数中访问/修改这些变量?换句话说,通过声明我已经做了这些变量,在类范围内的全局变量对吗? 如果没有,我该如何处理自我? 其次 ,如何正确将参数传递给类? 第三 ,如何在类范围之外调用类的函数? 第四 ,如何在另一个实例中创建的实例,并将变量

  • 问题内容: 我想知道如何在Quartz中从外部传递实例变量? 下面是我想写的伪代码。如何将externalInstance传递给此Job? 问题答案: 您可以将您的实例放在schedulerContext中。要计划作业时,可以在执行以下操作之前: 您的工作类别如下: 如果您使用的是Spring,那么您实际上可以使用spring的支持来注入整个applicationContext,就像在Link中回