【问题标题】:Scenario Outline without examples - Cucumber没有示例的场景大纲 - Cucumber
【发布时间】:2019-04-09 16:00:18
【问题描述】:

Scenrio outline 是否可以在没有 Examples 的情况下工作,并且每个工具中都只有一个表格,或者 Intellij 是特殊的?

我阅读了 Gherkin 参考,它指定了一个 Scenario outline must have an Examples 在它下面。

https://docs.cucumber.io/gherkin/reference/

但是当我使用Scenario Outline 运行我的测试时,它可以在任何地方没有Examples 部分的情况下正常工作。这里:

Scenario Outline: Sequence of customer update for something
  Given we create a Customer 
  When we update the customer with a state "<name>"
      Then the response status code is 200
        And we close the response

        | name|
        | Bob|
        | Adam|
        | Rachel|

它是如何工作的?

【问题讨论】:

    标签: java intellij-idea cucumber integration-testing gherkin


    【解决方案1】:

    我认为它将表格解释为Cucumber Data Table,它看起来类似于示例表格,但行为不同。示例表会导致针对每一行重新运行整个场景,但数据表只是传递到它们上方的步骤中的一个大的单个参数。

    我有点惊讶你没有因为省略 Examples: 关键字而收到语法错误。我刚刚尝试在我的环境中删除其中一个场景大纲上的Examples:,虽然它确实“通过”(或者更确切地说,没有失败),但它实际上并没有运行测试(报告显示 0 个场景, 0 步)。所以要小心,你手上可能有误报。

    我实际上去提交了一个错误,发现it has already been filed十年前……

    【讨论】:

    • 当场景大纲的一部分是String而不是Data Table对象时,Java代码中的参数不是数据表。我以为它会呕吐,但令我惊讶的是它没有,它完美地运行了场景
    • 嗯,这很有趣。我猜 cucumber java 足够聪明,可以处理这种情况,然后继续前进。我实际上正在使用 cucumber.js,它不会出错,但它也不会运行任何东西。
    • 在我的情况下,它不会出错,而是运行有点奇怪的场景
    【解决方案2】:

    在我的例子中,我错误地有一个完全没有示例的场景大纲:

    Scenario Outline: System displays search criteria
        Given UserS is logged in 
        Then UserS is on the 'Search' page
        When UserS clicks on the 'Search criteria' link
        Then the system displays the search criteria
    

    测试奇怪地一直运行,没有错误。只是当我尝试创建一个 html 报告时,一个错误一直说示例不存在,这导致我们检查了功能文件。

    所以我的猜测是测试以某种方式绕过了示例部分,如果没有参数存在,但报告者并不那么宽容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      相关资源
      最近更新 更多