gpt4 book ai didi

cucumber - 如何在 Cucumber Java 中的步骤之间传递变量值?

转载 作者:行者123 更新时间:2023-12-04 16:38:57 25 4
gpt4 key购买 nike

我有一个变量,我想在所有步骤中传递这个变量。
任何人都可以通过代码片段示例建议如何在步骤之间传递变量值。
任何帮助将不胜感激。

最佳答案

在 Cucumber for Java (cucumber-jvm) 中,在步骤之间共享数据的预期方式是使用依赖集成 (DI) 容器 - 其中一些容器已与 Cucumber 集成。

使用 DI 的方法因容器而异,但这里有一个使用 PicoContainer 的示例:

// MySharedData.java
public class MySharedData {
public String stringData;
}

// SomeStepDefs.java
public class SomeStepDefs {
private MySharedData sharedData;

public SomeStepDefs(MySharedData sharedData) {
this.sharedData = sharedData;
}

// StepDefs omitted
}

// MoreStepDefs.java
public class MoreStepDefs {
private MySharedData sharedData;

public MoreStepDefs(MySharedData sharedData) {
this.sharedData = sharedData;
}

// StepDefs omitted
}

DI 容器将确保为每个场景创建一个 MySharedData 实例,并将其传递给需要它的每个步骤定义类。这种方法的好处是 Cucumber 确保场景之间没有共享状态泄漏,因为注入(inject)的依赖项是为每个场景重新创建的。

上面的例子使用了构造函数注入(inject)(所以注入(inject)的依赖是由构造函数参数指定的)但是其他 DI 容器也支持其他注入(inject)机制,例如 Spring 的 @Autowired .

要让 Cucumber 使用 DI,您需要选择一个(并且只有一个)DI 集成并将其包含在您的类路径(或 POM 中)。选择是:
  • PicoContainer ( cucumber -picocontainer.jar)
  • Guice ( cucumber -guice.jar)
  • 焊接( cucumber 焊接.jar)
  • Spring (cucumber-spring.jar)
  • OpenEJB ( cucumber -openejb.jar)

  • 您还需要安装选定的 DI 容器本身,因为 Cucumber jar 仅提供 Cucumber 和 DI 容器之间的集成。

    关于cucumber - 如何在 Cucumber Java 中的步骤之间传递变量值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34449948/

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