避免黄瓜重复步骤

时间:2018-07-11 10:41:39

标签: automation cucumber bdd cucumber-java

当多个团队成员并行处理不同的功能文件时,如何避免重复的Cucumber步骤? 有时,我们会根据不同的情况找到一些类似的步骤,但是90%-100%相同。当测试很复杂并且需要为我们以前没有的新功能编写新步骤时,就会发生问题。

有没有技巧可以帮助解决此问题? 有没有好的工具可以管理和搜索步骤以避免重复的语句?

谢谢

1 个答案:

答案 0 :(得分:0)

每个人都以不同的方式编写方案。

可以避免重复的一种方法是记录您的步骤及其操作,以便您和您的团队可以对它们进行回顾,以查看是否存在可以使用的现有步骤。

对于功能几乎相同的步骤,可以合并以下步骤定义:Given I have logged inWhen I log in-黄瓜表达式:"I( have) log(ged) in",正则表达式:/I(?:| have) log(?:|ged) in/例子。

以您的示例为例,我们需要在步骤定义中知道您要实现的目标。例如,您可能要填写一个表单,其中必须根据登录的用户在下拉菜单中选择一个选项:

伪代码:

// Some stuff here to get to the dropdown
if(user.name === "Bob Ross"){
   form.dropdown.select.option(2);
} else if (user.name === "Ellen Ripley"){
   form.dropdown.select.option(3);
} else {
   form.dropdown.select.option(1);
}
// Some other stuff here to complete this step

基本上,这取决于您尝试执行的半重复步骤。

您可以检查要完成的旅程(使用先前运行的步骤和一个变量,一个Url,一个已登录的用户等),并做一些不同的事情吗?也许为此编写一个辅助函数,并将步定义保留为ifs块,以选择正确的函数。

您可以合并具有相同功能的步骤吗?

如果您可以执行上述任何一项操作,那么您应该会很好。