如何将数据从一个jbehave故事文件传递到另一个jbehave故事文件?

时间:2019-08-27 14:51:57

标签: jbehave

我希望将数据从一个jbehave故事文件传输到另一个jbehave故事文件。

我已经尝试过GivenStories语法,但这对我不起作用。

方案1:创建应用程序

鉴于我登录 然后我输入金额 然后输入百分比

...然后将参数作为全局变量传递给子故事

继续原始故事

参数可以作为全局变量传递

预期结果是父故事的执行应在同一会话中继续进行,同时在故事文件之间调用子故事

1 个答案:

答案 0 :(得分:0)

将参数或任何其他类型的数据从一种情况传递到另一种情况不是一个好习惯。所有方案都必须独立存在,并且不应依赖外部数据。具有预测性和可重复性。

然后...如您所说,要执行子故事,可以使用GivenStories:关键字。 在故事之间传递任何数据的最简单方法是将其存储在内存中。

@Autowired //This object must be unique between all your stories
private Map<Object, Object> dataHolder;

@When("I enter Amount=$value")
public void enterAmount(Integer value){
  dataHolder.put("amount", value);
  //... the rest of your code
}

@Then("I do something with my parameters")
public void doSomething(){
  Integer amount = (Integer) dataHolder.get("amount");
  //... do anything you need with your parameters
}

您不需要用于下一个方案的参数,只需清洁dataHolder。您想保留相同的参数,保持原样。