cucumber_analytics 0.0.9 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. checksums.yaml +15 -0
  2. data/History.rdoc +16 -0
  3. data/README.rdoc +5 -3
  4. data/Rakefile +7 -2
  5. data/cucumber_analytics.gemspec +7 -5
  6. data/features/analysis/step_collection.feature +44 -45
  7. data/features/modeling/background_modeling.feature +14 -144
  8. data/features/modeling/directory_modeling.feature +3 -2
  9. data/features/modeling/doc_string_modeling.feature +46 -0
  10. data/features/modeling/example_modeling.feature +13 -34
  11. data/features/modeling/feature_file_modeling.feature +3 -2
  12. data/features/modeling/feature_modeling.feature +18 -80
  13. data/features/modeling/outline_modeling.feature +25 -164
  14. data/features/modeling/scenario_modeling.feature +17 -144
  15. data/features/modeling/step_modeling.feature +68 -0
  16. data/features/modeling/table_modeling.feature +41 -0
  17. data/features/step_definitions/background_steps.rb +12 -11
  18. data/features/step_definitions/directory_steps.rb +6 -3
  19. data/features/step_definitions/doc_string_steps.rb +50 -0
  20. data/features/step_definitions/{file_steps.rb → feature_file_steps.rb} +8 -2
  21. data/features/step_definitions/feature_steps.rb +8 -4
  22. data/features/step_definitions/outline_steps.rb +12 -6
  23. data/features/step_definitions/setup_steps.rb +2 -2
  24. data/features/step_definitions/spec_steps.rb +6 -3
  25. data/features/step_definitions/step_steps.rb +91 -0
  26. data/features/step_definitions/table_steps.rb +10 -0
  27. data/features/step_definitions/test_steps.rb +6 -10
  28. data/features/step_definitions/world_steps.rb +28 -19
  29. data/features/support/env.rb +0 -2
  30. data/lib/cucumber_analytics/background.rb +16 -0
  31. data/lib/cucumber_analytics/containing.rb +18 -0
  32. data/lib/cucumber_analytics/directory.rb +83 -0
  33. data/lib/cucumber_analytics/doc_string.rb +55 -0
  34. data/lib/cucumber_analytics/example.rb +100 -0
  35. data/lib/cucumber_analytics/feature.rb +120 -0
  36. data/lib/cucumber_analytics/feature_element.rb +22 -40
  37. data/lib/cucumber_analytics/feature_file.rb +74 -0
  38. data/lib/cucumber_analytics/outline.rb +49 -0
  39. data/lib/cucumber_analytics/parsing.rb +30 -0
  40. data/lib/cucumber_analytics/scenario.rb +31 -0
  41. data/lib/cucumber_analytics/step.rb +142 -32
  42. data/lib/cucumber_analytics/table.rb +51 -0
  43. data/lib/cucumber_analytics/taggable.rb +35 -0
  44. data/lib/cucumber_analytics/test_element.rb +36 -91
  45. data/lib/cucumber_analytics/version.rb +1 -1
  46. data/lib/cucumber_analytics/world.rb +109 -153
  47. data/lib/cucumber_analytics.rb +12 -8
  48. data/spec/integration/background_integration_spec.rb +18 -0
  49. data/spec/integration/directory_integration_spec.rb +24 -0
  50. data/spec/{feature_spec.rb → integration/feature_file_integration_spec.rb} +5 -5
  51. data/spec/integration/feature_integration_spec.rb +86 -0
  52. data/spec/integration/outline_integration_spec.rb +22 -0
  53. data/spec/integration/scenario_integration_spec.rb +18 -0
  54. data/spec/integration/step_integration_spec.rb +116 -0
  55. data/spec/integration/world_integration_spec.rb +40 -0
  56. data/spec/spec_helper.rb +7 -3
  57. data/spec/unit/background_unit_spec.rb +22 -0
  58. data/spec/unit/bare_bones_unit_specs.rb +13 -0
  59. data/spec/unit/containing_element_unit_specs.rb +17 -0
  60. data/spec/unit/directory_unit_spec.rb +91 -0
  61. data/spec/unit/doc_string_unit_spec.rb +65 -0
  62. data/spec/unit/example_unit_spec.rb +171 -0
  63. data/spec/unit/feature_element_unit_spec.rb +19 -0
  64. data/spec/unit/feature_element_unit_specs.rb +39 -0
  65. data/spec/unit/feature_file_unit_spec.rb +82 -0
  66. data/spec/unit/feature_unit_spec.rb +81 -0
  67. data/spec/unit/nested_element_unit_specs.rb +24 -0
  68. data/spec/unit/outline_unit_spec.rb +56 -0
  69. data/spec/unit/parsing_unit_spec.rb +21 -0
  70. data/spec/unit/prepopulated_unit_specs.rb +13 -0
  71. data/spec/unit/scenario_unit_spec.rb +36 -0
  72. data/spec/unit/step_unit_spec.rb +231 -0
  73. data/spec/unit/table_unit_spec.rb +52 -0
  74. data/spec/unit/taggable_unit_spec.rb +63 -0
  75. data/spec/unit/tagged_element_unit_specs.rb +48 -0
  76. data/spec/unit/test_element_unit_spec.rb +40 -0
  77. data/spec/unit/test_element_unit_specs.rb +31 -0
  78. data/spec/unit/world_unit_spec.rb +167 -0
  79. metadata +106 -41
  80. data/lib/cucumber_analytics/logging.rb +0 -28
  81. data/lib/cucumber_analytics/outline_example.rb +0 -110
  82. data/lib/cucumber_analytics/parsed_background.rb +0 -45
  83. data/lib/cucumber_analytics/parsed_directory.rb +0 -78
  84. data/lib/cucumber_analytics/parsed_feature.rb +0 -97
  85. data/lib/cucumber_analytics/parsed_file.rb +0 -199
  86. data/lib/cucumber_analytics/parsed_scenario.rb +0 -67
  87. data/lib/cucumber_analytics/parsed_scenario_outline.rb +0 -122
  88. data/spec/background_spec.rb +0 -23
  89. data/spec/directory_spec.rb +0 -18
  90. data/spec/example_spec.rb +0 -37
  91. data/spec/file_spec.rb +0 -20
  92. data/spec/outline_spec.rb +0 -32
  93. data/spec/scenario_spec.rb +0 -33
  94. data/spec/step_spec.rb +0 -24
@@ -17,80 +17,30 @@ Feature: Features can be modeled.
17
17
  Background: Test file setup.
18
18
  Given the following feature file "much_stuff.feature":
19
19
  """
20
- #Don't mind me.
21
- #Or any line that is a comment, really.
22
- @a_feature_level_tag @and_another@and_another
20
+ @a_feature_level_tag @and_another
23
21
 
24
22
  Feature:The test feature name.
25
- Some more feature description.
26
-
23
+ Some feature description.
27
24
  And some more.
28
25
 
29
- Scenario but not really because I left out the magic ':'
30
- Given some description that uses keywords
31
- And more of it
32
- When I chuck the kitchen sink at it:
33
- But
34
- *
35
- |
36
-
37
- Scenario Outline
38
- Examples
39
- \"\"\"
40
- Background
41
- Then this is still one big valid description
42
- # Oddly enough, if this comment had come earlier in the description
43
- # it would have broken Cucumber. Comments can't be mixed into the
44
- # freeform text for some reason.
45
- #@commented_tag
46
-
47
-
48
26
  Background:Some general test setup stuff.
49
- A little more information.
50
27
  * some setup step
51
28
 
52
- @a_tag
53
-
54
- @another_tag@yet_another_tag
55
29
  Scenario: The first scenario's name.
56
- Some text describing the scenario.
57
- More text.
58
- Given the first step
59
- And this step takes a table:
60
- | data |
61
- | more data |
62
- When the second step
63
- Then the third step
64
- #Random comment
65
- @outline_tag
66
- Scenario Outline: The scenario outline's name.
67
- Some text describing the scenario.
68
- More text.
69
- Given the first "<param1>"
70
- And this step takes a table:
71
- | data |
72
- | more data |
73
- When the second "<param2>"
74
- Then the third step
75
- Examples: text describing the significance of the examples
76
- | param1 | param2 |
77
- | x | y |
78
-
79
- @example_tag
80
-
81
- Examples: some examples with different significance and a tag
82
- | param1 | param2 |
83
- | a | b |
84
- | c | d |
30
+ * a step
85
31
 
32
+ Scenario Outline: The scenario outline's name.
33
+ * a step
34
+ Examples:
35
+ | param |
36
+ | x |
37
+ | y |
38
+ Examples:
39
+ | param |
40
+ | z |
86
41
 
87
42
  Scenario: The second scenario's name.
88
- Some text describing the scenario.
89
- More text.
90
- Given the first step
91
- When the second step
92
- Then the third step
93
-
43
+ * a step
94
44
  """
95
45
  And the following feature file "barely_any_stuff.feature":
96
46
  """
@@ -129,20 +79,8 @@ Feature: Features can be modeled.
129
79
 
130
80
  Scenario: The feature's description is modeled.
131
81
  Then the descriptive lines of feature "1" are as follows:
132
- | Some more feature description. |
133
- | And some more. |
134
- | Scenario but not really because I left out the magic ':' |
135
- | Given some description that uses keywords |
136
- | And more of it |
137
- | When I chuck the kitchen sink at it: |
138
- | But |
139
- | * |
140
- | \| |
141
- | Scenario Outline |
142
- | Examples |
143
- | """ |
144
- | Background |
145
- | Then this is still one big valid description |
82
+ | Some feature description. |
83
+ | And some more. |
146
84
  And feature "2" has no descriptive lines
147
85
  And feature "3" has no descriptive lines
148
86
 
@@ -150,7 +88,6 @@ Feature: Features can be modeled.
150
88
  Then feature "1" is found to have the following tags:
151
89
  | @a_feature_level_tag |
152
90
  | @and_another |
153
- | @and_another |
154
91
  And feature "2" has no tags
155
92
  And feature "3" has no tags
156
93
 
@@ -200,5 +137,6 @@ Feature: Features can be modeled.
200
137
  When the corresponding unit tests are run
201
138
  Then all of those specifications are met
202
139
  Examples:
203
- | additional specifications |
204
- | feature_spec.rb |
140
+ | additional specifications |
141
+ | feature_unit_spec.rb |
142
+ | feature_integration_spec.rb |
@@ -16,72 +16,23 @@ Feature: Scenario Outline elements can be modeled.
16
16
  Given the following feature file:
17
17
  """
18
18
  @a_feature_level_tag
19
- Feature: The test feature name.
20
- Some more feature description.
19
+ Feature:
21
20
 
22
21
  @outline_tag
23
- Scenario Outline:The scenario outline's name.
24
- My big hunk of perfectly valid description:
25
- |
26
-
27
- Scenario Outline
28
- Examples
29
- \"\"\"
30
- Background
31
- this is still one big valid description
32
- # Basically, if it's not a step keyword or tag then I will accept
33
- # it as description here. Cucumber might not but but that's between
34
- # you and its lexxer/parser. ;)
35
-
36
- Given this *parameterized* step takes a table:
37
- | <param1> |
38
- | <param2> |
39
- And some setup step
40
- * some setup step
41
- #
42
- When a step with a *parameter*
43
- But a big step:
44
- #random comment
45
- \"\"\"
46
- some text
47
-
48
- #some comments
49
- Scenario:
50
- Scenario Outline:
51
- Examples:
52
- @
53
- Feature:
54
- |
55
- Given
56
- When
57
- Then
58
- And
59
- But
60
- *
61
- some more text
62
- \"\"\"
63
- Then *lots* *of* *parameters*
64
-
65
- Examples:text describing the significance of the examples
66
- Anything besides the | that starts a row should be valid
67
- description at this point in the test. YMMV
68
- | param1 | param2 |
69
- #A more random comment
70
- | x | y |
71
- @example_tag @another_one
72
- Examples: some examples with different significance and a tag
73
-
74
- Words, words, words, words,
75
-
76
- why so many words?
77
- #
78
-
79
- | param1 | param2 |
80
- #
81
-
82
- #
83
- | a | b |
84
-
22
+ Scenario Outline: The scenario outline's name.
23
+ Some outline description
24
+ Some more description
25
+
26
+ Given a <setup> step
27
+ When an action step
28
+ Then a <verification> step
29
+
30
+ Examples: example 1
31
+ | setup | verification |
32
+ | x | y |
33
+ Examples: example 2
34
+ | setup | verification |
35
+ | a | b |
85
36
  """
86
37
  And parameter delimiters of "*" and "*"
87
38
  When the file is read
@@ -93,105 +44,14 @@ Feature: Scenario Outline elements can be modeled.
93
44
 
94
45
  Scenario: The outline description is modeled.
95
46
  Then the test descriptive lines are as follows:
96
- | My big hunk of perfectly valid description: |
97
- | \| |
98
- | Scenario Outline |
99
- | Examples |
100
- | """ |
101
- | Background |
102
- | this is still one big valid description |
47
+ | Some outline description |
48
+ | Some more description |
103
49
 
104
50
  Scenario: The outline steps are modeled.
105
51
  Then the test steps are as follows:
106
- | Given this *parameterized* step takes a table: |
107
- | \| <param1> \| |
108
- | \| <param2> \| |
109
- | And some setup step |
110
- | * some setup step |
111
- | When a step with a *parameter* |
112
- | But a big step: |
113
- | """ |
114
- | 'some text' |
115
- | '' |
116
- | '#some comments' |
117
- | 'Scenario:' |
118
- | 'Scenario Outline:' |
119
- | 'Examples:' |
120
- | '@' |
121
- | 'Feature:' |
122
- | '\|' |
123
- | 'Given' |
124
- | 'When' |
125
- | 'Then' |
126
- | 'And' |
127
- | 'But' |
128
- | '*' |
129
- | ' some more text' |
130
- | """ |
131
- | Then *lots* *of* *parameters* |
132
- And the test steps "without" arguments are as follows:
133
- | Given this ** step takes a table: |
134
- | And some setup step |
135
- | * some setup step |
136
- | When a step with a ** |
137
- | But a big step: |
138
- | Then ** ** ** |
139
- And the test steps "without" keywords are as follows:
140
- | this *parameterized* step takes a table: |
141
- | \| <param1> \| |
142
- | \| <param2> \| |
143
- | some setup step |
144
- | some setup step |
145
- | a step with a *parameter* |
146
- | a big step: |
147
- | """ |
148
- | 'some text' |
149
- | '' |
150
- | '#some comments' |
151
- | 'Scenario:' |
152
- | 'Scenario Outline:' |
153
- | 'Examples:' |
154
- | '@' |
155
- | 'Feature:' |
156
- | '\|' |
157
- | 'Given' |
158
- | 'When' |
159
- | 'Then' |
160
- | 'And' |
161
- | 'But' |
162
- | '*' |
163
- | ' some more text' |
164
- | """ |
165
- | *lots* *of* *parameters* |
166
- And the test steps "without" arguments "without" keywords are as follows:
167
- | this ** step takes a table: |
168
- | some setup step |
169
- | some setup step |
170
- | a step with a ** |
171
- | a big step: |
172
- | ** ** ** |
173
- And the test step "1" has the following block:
174
- | \| <param1> \| |
175
- | \| <param2> \| |
176
- And the test step "5" has the following block:
177
- | """ |
178
- | 'some text' |
179
- | '' |
180
- | '#some comments' |
181
- | 'Scenario:' |
182
- | 'Scenario Outline:' |
183
- | 'Examples:' |
184
- | '@' |
185
- | 'Feature:' |
186
- | '\|' |
187
- | 'Given' |
188
- | 'When' |
189
- | 'Then' |
190
- | 'And' |
191
- | 'But' |
192
- | '*' |
193
- | ' some more text' |
194
- | """ |
52
+ | a <setup> step |
53
+ | an action step |
54
+ | a <verification> step |
195
55
 
196
56
  Scenario: The outline tags are modeled.
197
57
  Then the test is found to have the following tags:
@@ -203,8 +63,8 @@ Feature: Scenario Outline elements can be modeled.
203
63
 
204
64
  Scenario: The outline example blocks are modeled.
205
65
  And the test example blocks are as follows:
206
- | text describing the significance of the examples |
207
- | some examples with different significance and a tag |
66
+ | example 1 |
67
+ | example 2 |
208
68
 
209
69
  Scenario Outline: Outline models pass all other specifications
210
70
  Exact specifications detailing the API for Scenario Outline models.
@@ -212,5 +72,6 @@ Feature: Scenario Outline elements can be modeled.
212
72
  When the corresponding unit tests are run
213
73
  Then all of those specifications are met
214
74
  Examples:
215
- | additional specifications |
216
- | outline_spec.rb |
75
+ | additional specifications |
76
+ | outline_unit_spec.rb |
77
+ | outline_integration_spec.rb |
@@ -15,53 +15,17 @@ Feature: Scenario elements can be modeled.
15
15
  Given the following feature file:
16
16
  """
17
17
  @a_feature_level_tag
18
- Feature: The test feature name.
19
- Some more feature description.
18
+ Feature:
20
19
 
21
20
  @a_tag
22
-
23
- @another_tag@yet_another_tag
21
+ @another_tag
24
22
  Scenario:The first scenario's name.
25
- My big hunk of perfectly valid description:
26
- |
27
-
28
- Scenario Outline
29
- Examples
30
- \"\"\"
31
- Background
32
- this is still one big valid description
33
- # Basically, if it's not a step keyword or tag then I will accept
34
- # it as description here. Cucumber might not but but that's between
35
- # you and its lexxer/parser. ;)
36
- Given this *parameterized* step takes a table:
37
- | data |
38
- | more data |
39
- And some setup step
40
- * some setup step
41
- #
42
- When a step with a *parameter*
43
- But a big step:
44
- #random comment
45
- \"\"\"
46
- some text
47
-
48
- #some comments
49
- Scenario:
50
- Scenario Outline:
51
- Examples:
52
- @
53
- Feature:
54
- |
55
- Given
56
- When
57
- Then
58
- And
59
- But
60
- *
61
- some more text
62
- \"\"\"
63
- Then *lots* *of* *parameters*
23
+ Some scenario description
24
+ Some more description
64
25
 
26
+ Given a setup step
27
+ When an action step
28
+ Then a verification step
65
29
  """
66
30
  And parameter delimiters of "*" and "*"
67
31
  When the file is read
@@ -73,111 +37,19 @@ Feature: Scenario elements can be modeled.
73
37
 
74
38
  Scenario: The scenario description is modeled.
75
39
  Then the test descriptive lines are as follows:
76
- | My big hunk of perfectly valid description: |
77
- | \| |
78
- | Scenario Outline |
79
- | Examples |
80
- | """ |
81
- | Background |
82
- | this is still one big valid description |
40
+ | Some scenario description |
41
+ | Some more description |
83
42
 
84
43
  Scenario: The scenario steps are modeled.
85
44
  Then the test steps are as follows:
86
- | Given this *parameterized* step takes a table: |
87
- | \| data \| |
88
- | \| more data \| |
89
- | And some setup step |
90
- | * some setup step |
91
- | When a step with a *parameter* |
92
- | But a big step: |
93
- | """ |
94
- | 'some text' |
95
- | '' |
96
- | '#some comments' |
97
- | 'Scenario:' |
98
- | 'Scenario Outline:' |
99
- | 'Examples:' |
100
- | '@' |
101
- | 'Feature:' |
102
- | '\|' |
103
- | 'Given' |
104
- | 'When' |
105
- | 'Then' |
106
- | 'And' |
107
- | 'But' |
108
- | '*' |
109
- | ' some more text' |
110
- | """ |
111
- | Then *lots* *of* *parameters* |
112
- And the test steps "without" arguments are as follows:
113
- | Given this ** step takes a table: |
114
- | And some setup step |
115
- | * some setup step |
116
- | When a step with a ** |
117
- | But a big step: |
118
- | Then ** ** ** |
119
- And the test steps "without" keywords are as follows:
120
- | this *parameterized* step takes a table: |
121
- | \| data \| |
122
- | \| more data \| |
123
- | some setup step |
124
- | some setup step |
125
- | a step with a *parameter* |
126
- | a big step: |
127
- | """ |
128
- | 'some text' |
129
- | '' |
130
- | '#some comments' |
131
- | 'Scenario:' |
132
- | 'Scenario Outline:' |
133
- | 'Examples:' |
134
- | '@' |
135
- | 'Feature:' |
136
- | '\|' |
137
- | 'Given' |
138
- | 'When' |
139
- | 'Then' |
140
- | 'And' |
141
- | 'But' |
142
- | '*' |
143
- | ' some more text' |
144
- | """ |
145
- | *lots* *of* *parameters* |
146
- And the test steps "without" arguments "without" keywords are as follows:
147
- | this ** step takes a table: |
148
- | some setup step |
149
- | some setup step |
150
- | a step with a ** |
151
- | a big step: |
152
- | ** ** ** |
153
- And the test step "1" has the following block:
154
- | \| data \| |
155
- | \| more data \| |
156
- And the test step "5" has the following block:
157
- | """ |
158
- | 'some text' |
159
- | '' |
160
- | '#some comments' |
161
- | 'Scenario:' |
162
- | 'Scenario Outline:' |
163
- | 'Examples:' |
164
- | '@' |
165
- | 'Feature:' |
166
- | '\|' |
167
- | 'Given' |
168
- | 'When' |
169
- | 'Then' |
170
- | 'And' |
171
- | 'But' |
172
- | '*' |
173
- | ' some more text' |
174
- | """ |
45
+ | a setup step |
46
+ | an action step |
47
+ | a verification step |
175
48
 
176
49
  Scenario: The scenario tags are modeled.
177
50
  Then the test is found to have the following tags:
178
- | @a_tag |
179
- | @another_tag |
180
- | @yet_another_tag |
51
+ | @a_tag |
52
+ | @another_tag |
181
53
 
182
54
  Scenario: The scenario applied tags are modeled.
183
55
  Then the test is found to have the following applied tags:
@@ -189,5 +61,6 @@ Feature: Scenario elements can be modeled.
189
61
  When the corresponding unit tests are run
190
62
  Then all of those specifications are met
191
63
  Examples:
192
- | additional specifications |
193
- | scenario_spec.rb |
64
+ | additional specifications |
65
+ | scenario_unit_spec.rb |
66
+ | scenario_integration_spec.rb |
@@ -0,0 +1,68 @@
1
+ Feature: Step elements can be modeled.
2
+
3
+
4
+ Acceptance criteria
5
+
6
+ All conceptual pieces of a Step can be modeled:
7
+ 1. the step's keyword
8
+ 2. the text of the step
9
+ 3. the step's arguments, if any
10
+ 4. the step's associated block, if any
11
+
12
+
13
+ Background: Test file setup.
14
+ Given the following feature file:
15
+ """
16
+ Feature:
17
+
18
+ Scenario:
19
+ Given some setup step
20
+ And some big setup step:
21
+ \"\"\" content_type
22
+ some text
23
+ some more text
24
+ \"\"\"
25
+ When this *parameterized* step takes a table:
26
+ | data | a header |
27
+ | more data | a value |
28
+ Then a step with a *parameter*
29
+ """
30
+ And parameter delimiters of "*" and "*"
31
+ When the file is read
32
+
33
+
34
+ Scenario: The step's keyword is modeled.
35
+ Then the test step "1" keyword is "Given"
36
+ And the test step "2" keyword is "And"
37
+ And the test step "3" keyword is "When"
38
+ And the test step "4" keyword is "Then"
39
+
40
+ Scenario: The text of the step is modeled.
41
+ Then test step "1" text is "some setup step"
42
+ And test step "2" text is "some big setup step:"
43
+ And test step "3" text is "this *parameterized* step takes a table:"
44
+ And test step "4" text is "a step with a *parameter*"
45
+
46
+ Scenario: The step's arguments are modeled.
47
+ Then test step "1" has no arguments
48
+ And test step "2" has no arguments
49
+ And test step "3" arguments are:
50
+ | parameterized |
51
+ And test step "4" arguments are:
52
+ | parameter |
53
+
54
+ Scenario: The steps's block is modeled.
55
+ Then step "1" has no block
56
+ Then step "2" has a "doc string"
57
+ And step "3" has a "table"
58
+ And step "4" has no block
59
+
60
+ Scenario Outline: Step models pass all other specifications
61
+ Exact specifications detailing the API for Step models.
62
+ Given that there are "<additional specifications>" detailing models
63
+ When the corresponding unit tests are run
64
+ Then all of those specifications are met
65
+ Examples:
66
+ | additional specifications |
67
+ | step_unit_spec.rb |
68
+ | step_integration_spec.rb |
@@ -0,0 +1,41 @@
1
+ Feature: Table elements can be modeled.
2
+
3
+
4
+ Acceptance criteria
5
+
6
+ All conceptual pieces of a Table can be modeled:
7
+ 1. the table's contents
8
+
9
+
10
+ Background: Test file setup.
11
+ Given the following feature file:
12
+ """
13
+ Feature:
14
+
15
+ Scenario:
16
+ * some data filled step:
17
+ | value 1 | value 2 |
18
+ | value 3 | value 4 |
19
+ * some data filled step:
20
+ | value 1 |
21
+ | value 2 |
22
+ """
23
+ When the file is read
24
+
25
+
26
+ Scenario: The table's contents are modeled.d
27
+ Then the step "1" table has the following contents:
28
+ | value 1 | value 2 |
29
+ | value 3 | value 4 |
30
+ And the step "2" table has the following contents:
31
+ | value 1 |
32
+ | value 2 |
33
+
34
+ Scenario Outline: Table models pass all other specifications
35
+ Exact specifications detailing the API for Table String models.
36
+ Given that there are "<additional specifications>" detailing models
37
+ When the corresponding unit tests are run
38
+ Then all of those specifications are met
39
+ Examples:
40
+ | additional specifications |
41
+ | table_unit_spec.rb |