如何传递变量&黄瓜jvm场景之间的值

时间:2016-04-28 15:06:45

标签: java selenium cucumber-jvm

我有两个场景A和B.我在一个变量中存储'A'场景的字段输出值。现在我必须在场景'B'中使用该变量。如何将变量及其值从一个场景传递给Cucumber Java中的其他场景

4 个答案:

答案 0 :(得分:0)

目前还不完全清楚这些场景的步骤定义是否在单独的类中,但我认为它们是并且ScenarioA中的步骤在B中的步骤之前执行。

public class ScenarioA {

  public static String getVariableYouWantToUse() {
    return variableYouWantToUse;
  }

  private static String variableYouWantToUse;

  Given("your step that expects one parameter")
  public void some_step(String myVariable)
    variableYouWantToUse = myVariable;
}

然后在方案B中。

public class ScenarioB {

  Given("other step")
  public void some_other_step()
    ScenarioA.getVariableYouWantToUse();
}

答案 1 :(得分:0)

只是为了记录,而不是依赖静态状态,可以使用cucumber-jvm的Dependency Injection功能。

答案 2 :(得分:0)

如@Mykola所述,最好的方法是使用依赖注入。要使用手动依赖注入提供一个简单的解决方案,您可以执行类似

的操作
public class OneStepDefinition{

private String user;

// and some setter which could be your step definition methods

public String getUser() {
  return user;
}

}

public class AnotherStepDefinition {

private final OneStepDefinition oneStepDefinition;

 public AnotherStepDefinition(OneStepDefinition oneStepDefinition) {
        this.oneStepDefinition = oneStepDefinition;
    }

// Some step defs
@Given("^I do something on the user created in OneStepDefinition class$")
    public void doSomething() {
  String user = oneStepDefinition.getUser();
// do something with the user
    }
}

答案 3 :(得分:0)

具有静态变量

==
相关问题