当多个团队成员并行处理不同的功能文件时,如何避免重复的Cucumber步骤? 有时,我们会根据不同的情况找到一些类似的步骤,但是90%-100%相同。当测试很复杂并且需要为我们以前没有的新功能编写新步骤时,就会发生问题。
有没有技巧可以帮助解决此问题? 有没有好的工具可以管理和搜索步骤以避免重复的语句?
谢谢
答案 0 :(得分:0)
每个人都以不同的方式编写方案。
可以避免重复的一种方法是记录您的步骤及其操作,以便您和您的团队可以对它们进行回顾,以查看是否存在可以使用的现有步骤。
对于功能几乎相同的步骤,可以合并以下步骤定义:Given I have logged in
与When 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块,以选择正确的函数。
您可以合并具有相同功能的步骤吗?
如果您可以执行上述任何一项操作,那么您应该会很好。