【问题标题】:Scenario outline in gherkin小黄瓜中的场景大纲
【发布时间】:2018-06-15 10:58:13
【问题描述】:

是否可以在小黄瓜中编写一个场景大纲,其中包含在所有示例中都不需要的断言步骤?

该场景将有两个断言步骤来测试可以切换的表。

  1. 检查是否显示了数据表。
  2. 如果是,则检查值是否正确。

对于#2,当表被关闭时,第二步就不需要运行了,所以我想知道我是否可以使用数据表并将值留空

下面的例子:

Scenario Outline: Toggle graph and test data
Given I have "<Data>" data set
When I toggle the grid "<toggle>"
Then the grid is "<display>"
And all grid cells contain "<gridValues>"
Examples:
  | Data       | toggle | display   | gridValues |
  | 240        | On     | displayed | 240        |
  | 240        | Off    | hidden    |            |
  | null data  | On     | displayed | -          |
  | null data  | Off    | hidden    |            |

“gridValues”只会在其中两种情况下使用。

有没有更好的写法?

【问题讨论】:

  • 那你应该再写一个Scenario。在这种情况下使用的常用短语是don't code your feature file。 (在理想世界中)这些句子是在选择任何代码设计决策之前编写的。在这个阶段,甚至可能还没有决定是否会有一个切换。 (这在很大程度上取决于应该实现的目标)
  • 符合@SubOptimal;写不同的场景。如果切换开关打开或关闭,您的期望会有所不同;你可以测试这两个。 (如果开关打开,则应显示并验证数据;如果关闭,则不应显示)

标签: cucumber gherkin


【解决方案1】:

是的,有更好的写法。试着写一个场景来解释你在做什么以及为什么它很重要,而不是一个充满细节的场景来解释你如何做某事,但实际上根本没有揭示你在做什么。

一些问题可以帮助你做到这一点

  • 数据集中的数据代表什么
  • 什么是网格
  • 我们为什么要切换网格?有什么意义?
  • 你为什么还要写这个场景?

等等。等等

尝试自己弹出“为什么”堆栈,看看是否能发现“什么”和“为什么”。

【讨论】:

    猜你喜欢
    • 2019-12-15
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 2021-12-18
    相关资源
    最近更新 更多