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

时间:2017-08-10 19:34:45

标签: cucumber-jvm cucumber-java

我有两个名为" X"和" Y" ( 很多其他的) 在测试场景" Y"之前,我需要运行场景" X"并返回场景" X"方案" Y"。我该怎么做?

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

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

1 个答案:

答案 0 :(得分: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(您没有指定)用于编写然后读取文件的示例也很容易获得。

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