~ubuntu-branches/ubuntu/wily/cucumber/wily-proposed

« back to all changes in this revision

Viewing changes to features/docs/gherkin/outlines.feature

  • Committer: Package Import Robot
  • Author(s): Cédric Boutillier, Antonio Terceiro, Cédric Boutillier
  • Date: 2015-06-20 16:52:32 UTC
  • mfrom: (1.1.7)
  • Revision ID: package-import@ubuntu.com-20150620165232-hznc8mxma08er27p
Tags: 2.0.0-1
[ Antonio Terceiro ]
* debian/cucumber.pod: fix typo in manpage (Closes: #767215)

[ Cédric Boutillier ]
* Imported Upstream version 2.0.0
* rename the file in debian/missing-source to remove -min suffix, and make
  lintian happy
* reproducibility: use last changelog date to build the manpage
* update 0004-Update_default_binary_path.patch
* drop 0001-Remove-rubygems-bundler-stuff-from-spec_helper.patch, not needed
  anymore
* build-depend on pry
* depend on ruby-cucumber-core

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
@spawn
 
2
Feature: Scenario outlines
 
3
 
 
4
  Copying and pasting scenarios to use different values quickly
 
5
  becomes tedious and repetitive. Scenario outlines allow us to more
 
6
  concisely express these examples through the use of a template with
 
7
  placeholders, using Scenario Outline, Examples with tables and < >
 
8
  delimited parameters.
 
9
 
 
10
  The Scenario Outline steps provide a template which is never directly
 
11
  run. A Scenario Outline is run once for each row in the Examples section
 
12
  beneath it (not counting the first row).
 
13
 
 
14
  The way this works is via placeholders. Placeholders must be contained
 
15
  within < > in the Scenario Outline's steps - see the examples below.
 
16
 
 
17
  **IMPORTANT:** Your step definitions will never have to match a
 
18
  placeholder. They will need to match the values that will replace the
 
19
  placeholder.
 
20
 
 
21
  Background:
 
22
    Given a file named "features/outline_sample.feature" with:
 
23
      """
 
24
      Feature: Outline Sample
 
25
 
 
26
        Scenario: I have no steps
 
27
 
 
28
        Scenario Outline: Test state
 
29
          Given <state> without a table
 
30
          Given <other_state> without a table
 
31
        Examples: Rainbow colours
 
32
          | state    | other_state |
 
33
          | missing  | passing     |
 
34
          | passing  | passing     |
 
35
          | failing  | passing     |
 
36
      Examples:Only passing
 
37
          | state    | other_state |
 
38
          | passing  | passing     |
 
39
      """
 
40
    And a file named "features/step_definitions/steps.rb" with:
 
41
      """
 
42
      Given(/^passing without a table$/) { }
 
43
      Given(/^failing without a table$/) { raise RuntimeError }
 
44
      """
 
45
 
 
46
  Scenario: Run scenario outline with filtering on outline name
 
47
    When I run `cucumber -q features/outline_sample.feature`
 
48
    Then it should fail with:
 
49
      """
 
50
      Feature: Outline Sample
 
51
 
 
52
        Scenario: I have no steps
 
53
 
 
54
        Scenario Outline: Test state
 
55
          Given <state> without a table
 
56
          Given <other_state> without a table
 
57
 
 
58
          Examples: Rainbow colours
 
59
            | state   | other_state |
 
60
            | missing | passing     |
 
61
            | passing | passing     |
 
62
            | failing | passing     |
 
63
            RuntimeError (RuntimeError)
 
64
            ./features/step_definitions/steps.rb:2:in `/^failing without a table$/'
 
65
            features/outline_sample.feature:12:in `Given failing without a table'
 
66
            features/outline_sample.feature:6:in `Given <state> without a table'
 
67
 
 
68
          Examples: Only passing
 
69
            | state   | other_state |
 
70
            | passing | passing     |
 
71
 
 
72
      Failing Scenarios:
 
73
      cucumber features/outline_sample.feature:12
 
74
 
 
75
      5 scenarios (1 failed, 1 undefined, 3 passed)
 
76
      8 steps (1 failed, 2 skipped, 1 undefined, 4 passed)
 
77
      """
 
78
 
 
79
  Scenario: Run scenario outline steps only
 
80
    When I run `cucumber -q features/outline_sample.feature:7`
 
81
    Then it should fail with:
 
82
      """
 
83
      Feature: Outline Sample
 
84
 
 
85
        Scenario Outline: Test state
 
86
          Given <state> without a table
 
87
          Given <other_state> without a table
 
88
 
 
89
          Examples: Rainbow colours
 
90
            | state   | other_state |
 
91
            | missing | passing     |
 
92
            | passing | passing     |
 
93
            | failing | passing     |
 
94
            RuntimeError (RuntimeError)
 
95
            ./features/step_definitions/steps.rb:2:in `/^failing without a table$/'
 
96
            features/outline_sample.feature:12:in `Given failing without a table'
 
97
            features/outline_sample.feature:6:in `Given <state> without a table'
 
98
 
 
99
          Examples: Only passing
 
100
            | state   | other_state |
 
101
            | passing | passing     |
 
102
 
 
103
      Failing Scenarios:
 
104
      cucumber features/outline_sample.feature:12
 
105
 
 
106
      4 scenarios (1 failed, 1 undefined, 2 passed)
 
107
      8 steps (1 failed, 2 skipped, 1 undefined, 4 passed)
 
108
 
 
109
      """
 
110
 
 
111
  Scenario: Run single failing scenario outline table row
 
112
    When I run `cucumber -q features/outline_sample.feature:12`
 
113
    Then it should fail with:
 
114
      """
 
115
      Feature: Outline Sample
 
116
 
 
117
        Scenario Outline: Test state
 
118
          Given <state> without a table
 
119
          Given <other_state> without a table
 
120
 
 
121
          Examples: Rainbow colours
 
122
            | state   | other_state |
 
123
            | failing | passing     |
 
124
            RuntimeError (RuntimeError)
 
125
            ./features/step_definitions/steps.rb:2:in `/^failing without a table$/'
 
126
            features/outline_sample.feature:12:in `Given failing without a table'
 
127
            features/outline_sample.feature:6:in `Given <state> without a table'
 
128
 
 
129
      Failing Scenarios:
 
130
      cucumber features/outline_sample.feature:12
 
131
 
 
132
      1 scenario (1 failed)
 
133
      2 steps (1 failed, 1 skipped)
 
134
 
 
135
      """
 
136
 
 
137
  Scenario: Run all with progress formatter
 
138
    When I run `cucumber -q --format progress features/outline_sample.feature`
 
139
    Then it should fail with exactly:
 
140
      """
 
141
      --UU..FF..
 
142
 
 
143
      (::) failed steps (::)
 
144
 
 
145
      RuntimeError (RuntimeError)
 
146
      ./features/step_definitions/steps.rb:2:in `/^failing without a table$/'
 
147
      features/outline_sample.feature:12:in `Given failing without a table'
 
148
      features/outline_sample.feature:6:in `Given <state> without a table'
 
149
 
 
150
      Failing Scenarios:
 
151
      cucumber features/outline_sample.feature:12
 
152
 
 
153
      5 scenarios (1 failed, 1 undefined, 3 passed)
 
154
      8 steps (1 failed, 2 skipped, 1 undefined, 4 passed)
 
155
      0m0.012s
 
156
 
 
157
      """
 
158