【问题标题】:cucumber Scenario Outlines: how to skip step for one scenario黄瓜场景大纲:如何跳过一个场景的步骤
【发布时间】:2017-04-14 14:26:12
【问题描述】:

我有一个奇怪的情况,我有两个例子。我有这个 一个步骤fill the mandatory fields of user form 我只需要为一个示例(“scope_self”)执行。对于其他它不应该运行。

有没有办法做到这一点

Examples:
        |    action     |
        |  "scope_self" |
        |   "scope_new" |

【问题讨论】:

    标签: rspec cucumber capybara


    【解决方案1】:

    使用强制步骤创建单独的场景会是一个更简单的选择。将是一个更清洁的实现。

    无论如何,有一种方法可以让它在相同的场景大纲中工作。

    1. 将示例表一分为二。给第一个表一个 @Mandatory 标签,其中包含 一个示例 ("scope_self")
     Scenario Outline:
          Given ............
          When .............
          Then .............
    
          @Mandatory
          Examples:
                  |    action     |
                  |  "scope_self" |
    
          Examples:
                  |    action     |
                  |   "scope_new" |
    
    1. 设置变量标志并将其设置为 false。

    2. 为@Mandatory 标记创建一个标记的Before 挂钩。在此将标志变量设置为 true。

    3. 在强制选项的步骤定义代码中检查标志变量是否设置为真或假。如果为 true,则运行其余代码,否则跳过返回。

    我是基于 Java 的,但这在 rspec 中应该对你有用...

    【讨论】:

    • 我反对单独的方案,因为有 10 多个相同的步骤。但是感谢@grasshopper 您在下面的解决方案是有道理的。现在加一票,如果没有更好的解决方案,我会在几天内接受答案。
    • 只是澄清...该解决方案不需要您通过重复步骤来拆分场景大纲,只需将示例表一分为二以获得单个场景。已编辑清楚...
    猜你喜欢
    • 2019-12-15
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    相关资源
    最近更新 更多