我有两个名为“X”和“Y”的场景(许多其他场景)在测试场景“Y”之前,我需要运行场景“X”并将场景“X”的结果返回到场景“Y”。我该怎么办?
我已经尝试了2个选项1:我已经为X创建了背景场景但是我无法将结果从背景场景X返回到场景Y. 2:我还尝试在挂钩注释之前使用。
(PS:我知道测试所有测试用例时应该相互独立)
也许最简单的方法是将两个步骤放在同一个类中,然后使用类实例变量。
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(您没有指定)用于编写然后读取文件的示例也很容易获得。
只要两个场景都在同一个功能文件中,并行执行就可以了。