场景与场景大纲

Scenario vs. Scenario Outline

背景:

我目前正在为 Symfony2 网页编写性能测试 (Mink/Selenium)。我有很多例子可以参考,实际编写它们应该没问题。步骤定义已经写好了。

但是,在示例中,它们有时定义 Scenario:,有时定义 Scenario Outline:

问题:

这两种定义测试的方式有什么区别?

场景就是这样。

场景大纲使用占位符来加快测试速度。

https://github.com/cucumber/cucumber/wiki/Scenario-Outlines

来自the official guide

Copying and pasting scenarios to use different values can quickly become tedious and repetitive:

Scenario: Eat 5 out of 12
  Given there are 12 cucumbers
  When I eat 5 cucumbers
  Then I should have 7 cucumbers

Scenario: Eat 5 out of 20
  Given there are 20 cucumbers
  When I eat 5 cucumbers
  Then I should have 15 cucumbers

Scenario Outlines allow us to more concisely express these examples through the use of a template with placeholders

Scenario Outline: Eating
  Given there are <start> cucumbers
  When I eat <eat> cucumbers
  Then I should have <left> cucumbers

  Examples:
    | start | eat | left |
    |  12   |  5  |  7   |
    |  20   |  5  |  15  |

The Scenario Outline steps provide a template which is never directly run. A Scenario Outline is run once for each row in the Examples section beneath it (except for the first header row).

Writing Features 指南中有更多内容。