【问题标题】:How to pass variable & values between cucumber jvm scenarios如何在黄瓜 jvm 场景之间传递变量和值
【发布时间】:2020-03-18 03:13:11
【问题描述】:

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

【问题讨论】:

    标签: java selenium cucumber-jvm


    【解决方案1】:

    尚不完全清楚这些场景的步骤定义是否在单独的类中,但我假设它们是,并且场景 A 中的步骤在 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();
    }
    

    【讨论】:

      【解决方案2】:

      正如@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
          }
      }
      

      【讨论】:

      • 问题是关于场景而不是步骤,DI 不适用于场景。
      【解决方案3】:

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

      【讨论】:

      • 链接已失效,吉姆!
      【解决方案4】:

      带静态变量

      public class CcumberCintext {
         public static String value;
      }
      

      【讨论】:

        猜你喜欢
        • 2014-03-08
        • 1970-01-01
        • 2023-03-25
        • 1970-01-01
        • 1970-01-01
        • 2021-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多