【问题标题】:Avoid Cucumber Duplicated Steps避免黄瓜重复步骤
【发布时间】:2018-12-19 08:57:15
【问题描述】:

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

有什么好的提示可以帮助解决这个问题吗? 是否有可以管理和搜索步骤以避免重复语句的好工具?

谢谢,

【问题讨论】:

    标签: automation cucumber bdd cucumber-java


    【解决方案1】:

    每个人写场景的方式都不一样。

    您可以开始避免重复的一种方法是记录您的步骤和它们的作用,以便您和您的团队可以回顾它们,看看是否有他们可以使用的现有步骤。

    对于功能几乎相同的步骤,您可以合并步骤定义:Given I have logged in vs 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 块来选择正确的。

    你能合并具有相同功能的步骤吗?

    如果你能做到其中任何一个,那么你应该很高兴。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多