cucumber + java:将步骤1中返回的参数传递给第2步
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cucumber + java:将步骤1中返回的参数传递给第2步相关的知识,希望对你有一定的参考价值。
我是黄瓜新手。我们有以下用于通过黄瓜进行UI自动化的用例。
请考虑以下示例。
在TestNg中,
@Test {"formname"}
public void createAndSearchForm(String formName)
{
//In below step, it create form by name (formName-timestamp) and return the formname. e.g. it create form and return "formname-06042016184426"
// In this method we create form name by appending time stamp to formname passed to method. Since application didn't accept same name we need to append timestamp
// to formname.
String newFormName=createForm(formName);
// In below method we pass above newFormName and verify whether form is created or not by searching form name.
asserTrue(searchCreatedForm(newFormName));
}
现在我们正在转向黄瓜,我们需要在黄瓜中完成上述例子。
特征:表格。
场景:登录到应用程序 给定名称为“formname”的创建表单 然后搜索“formname”
我们面临的问题 - >在step1中返回的formname,我们不知道如何将它传递给step2。在场景中,我们需要将此表单名称传递给在各种类中实现的不同步骤定义。
我试图在网上搜索,但没有找到任何特定于我们需要的东西。
如果有人能给我们一些指示/建议,那将是很有帮助的。
答案
编辑当我需要跨多个步骤文件共享变量时,我创建了一个定义它们的超类。我的每个步骤文件都扩展了该超类,使它们可以访问该变量(或变量)。
如注释中所述,请注意使类变量保持静态,因为您可能会泄漏状态。我在类构造函数中将任何静态变量的值设置为值(例如null),以便为每个方案重置该值。
- 编辑 -
public class YourStepDefinitions {
private String interStepParameter;
@Given("^Some first step$")
public void first_step() {
interStepParameter = "foo";
}
@Then ("^A second step$")
public void second_step() throws Throwable {
if (interStepParameter.equals("foo") {
// Do something
}
}
}
以上是关于cucumber + java:将步骤1中返回的参数传递给第2步的主要内容,如果未能解决你的问题,请参考以下文章
可以在Cucumber(java)中创建“Master Step”吗?