如何使用黄瓜java测试中之前或背景场景返回的结果?

问题描述 投票:0回答:1

我有两个名为“X”和“Y”的场景(许多其他场景)在测试场景“Y”之前,我需要运行场景“X”并将场景“X”的结果返回到场景“Y”。我该怎么办?

我已经尝试了2个选项1:我已经为X创建了背景场景但是我无法将结果从背景场景X返回到场景Y. 2:我还尝试在挂钩注释之前使用。

(PS:我知道测试所有测试用例时应该相互独立)

cucumber-jvm cucumber-java
1个回答
0
投票

也许最简单的方法是将两个步骤放在同一个类中,然后使用类实例变量。

public class SomeSteps {
  private List<String> betweenStepsList;

  @When("^I initialize a list in one step$") 
  public void iInitializeAListInOneStep() {
    betweenStepsList = new ArrayList<String>(Arrays.asList("Peter","Piper","picked","a","peck","of","pickled","peppers"));
  }

  @Then("^I can access that list in a following step$") 
  public void iCanAccessThatListInAFollowingStep() {
    System.out.println("Elements are:" + betweenStepsList);
  }
}

编辑你说过两个场景。当我面对这个问题时,我总能找到一种方法将场景合二为一。

您可以将中间结果写入第一个场景中的文件,然后在第二个场景中读取它们。我自己从不费心去做,但是有很多关于如何读写文件的教程。这是针对Java的one。 Ruby或Python(您没有指定)用于编写然后读取文件的示例也很容易获得。

只要两个场景都在同一个功能文件中,并行执行就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.