cuke_modeler 0.3.0 → 0.4.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.
- checksums.yaml +4 -4
- data/History.rdoc +8 -0
- data/features/step_definitions/feature_steps.rb +1 -1
- data/features/step_definitions/test_steps.rb +6 -2
- data/lib/cuke_modeler/directory.rb +7 -10
- data/lib/cuke_modeler/version.rb +1 -1
- data/spec/integration/background_integration_spec.rb +53 -40
- data/spec/integration/directory_integration_spec.rb +39 -26
- data/spec/integration/doc_string_integration_spec.rb +51 -43
- data/spec/integration/example_integration_spec.rb +71 -60
- data/spec/integration/feature_file_integration_spec.rb +36 -22
- data/spec/integration/feature_integration_spec.rb +113 -104
- data/spec/integration/outline_integration_spec.rb +71 -56
- data/spec/integration/row_integration_spec.rb +72 -0
- data/spec/integration/scenario_integration_spec.rb +61 -46
- data/spec/integration/step_integration_spec.rb +126 -117
- data/spec/integration/table_integration_spec.rb +67 -52
- data/spec/integration/table_row_integration_spec.rb +48 -40
- data/spec/integration/tag_integration_spec.rb +53 -45
- data/spec/integration/world_integration_spec.rb +2 -1
- data/spec/spec_helper.rb +15 -12
- data/spec/unit/background_unit_spec.rb +65 -50
- data/spec/unit/bare_bones_unit_specs.rb +2 -3
- data/spec/unit/containing_element_unit_specs.rb +6 -7
- data/spec/unit/directory_unit_spec.rb +103 -64
- data/spec/unit/doc_string_unit_spec.rb +113 -95
- data/spec/unit/example_unit_spec.rb +235 -219
- data/spec/unit/feature_element_unit_spec.rb +6 -6
- data/spec/unit/feature_element_unit_specs.rb +28 -24
- data/spec/unit/feature_file_unit_spec.rb +73 -63
- data/spec/unit/feature_unit_spec.rb +145 -111
- data/spec/unit/nested_element_unit_specs.rb +14 -13
- data/spec/unit/nested_unit_spec.rb +24 -21
- data/spec/unit/outline_unit_spec.rb +92 -78
- data/spec/unit/parsing_unit_spec.rb +55 -51
- data/spec/unit/prepopulated_unit_specs.rb +2 -3
- data/spec/unit/raw_element_unit_specs.rb +12 -11
- data/spec/unit/raw_unit_spec.rb +15 -12
- data/spec/unit/row_unit_spec.rb +68 -52
- data/spec/unit/scenario_unit_spec.rb +76 -62
- data/spec/unit/sourceable_unit_spec.rb +8 -6
- data/spec/unit/sourced_element_unit_specs.rb +4 -6
- data/spec/unit/step_unit_spec.rb +231 -203
- data/spec/unit/table_row_unit_spec.rb +68 -52
- data/spec/unit/table_unit_spec.rb +100 -82
- data/spec/unit/tag_unit_spec.rb +62 -48
- data/spec/unit/taggable_unit_spec.rb +58 -51
- data/spec/unit/tagged_element_unit_specs.rb +28 -26
- data/spec/unit/test_element_unit_spec.rb +33 -27
- data/spec/unit/test_element_unit_specs.rb +15 -14
- data/spec/unit/world_unit_spec.rb +94 -84
- metadata +4 -2
@@ -5,303 +5,319 @@ SimpleCov.command_name('Example') unless RUBY_VERSION.to_s < '1.9.0'
|
|
5
5
|
describe 'Example, Unit' do
|
6
6
|
|
7
7
|
let(:clazz) { CukeModeler::Example }
|
8
|
+
let(:example) { clazz.new }
|
8
9
|
|
9
|
-
|
10
|
-
it_should_behave_like 'a nested element'
|
11
|
-
it_should_behave_like 'a tagged element'
|
12
|
-
it_should_behave_like 'a bare bones element'
|
13
|
-
it_should_behave_like 'a prepopulated element'
|
14
|
-
it_should_behave_like 'a sourced element'
|
15
|
-
it_should_behave_like 'a containing element'
|
16
|
-
it_should_behave_like 'a raw element'
|
10
|
+
describe 'common behavior' do
|
17
11
|
|
12
|
+
it_should_behave_like 'a feature element'
|
13
|
+
it_should_behave_like 'a nested element'
|
14
|
+
it_should_behave_like 'a tagged element'
|
15
|
+
it_should_behave_like 'a bare bones element'
|
16
|
+
it_should_behave_like 'a prepopulated element'
|
17
|
+
it_should_behave_like 'a sourced element'
|
18
|
+
it_should_behave_like 'a containing element'
|
19
|
+
it_should_behave_like 'a raw element'
|
18
20
|
|
19
|
-
|
20
|
-
source = ['Examples: test example',
|
21
|
-
'|param| ',
|
22
|
-
'|value|']
|
21
|
+
end
|
23
22
|
|
24
|
-
source = source.join("\n")
|
25
23
|
|
26
|
-
|
24
|
+
describe 'unique behavior' do
|
27
25
|
|
28
|
-
|
29
|
-
|
30
|
-
|
26
|
+
it 'can be parsed from stand alone text' do
|
27
|
+
source = ['Examples: test example',
|
28
|
+
'|param| ',
|
29
|
+
'|value|']
|
31
30
|
|
32
|
-
|
33
|
-
it 'can be instantiated with the minimum viable Gherkin', :gherkin4 => true do
|
34
|
-
source = ['Examples:']
|
35
|
-
source = source.join("\n")
|
31
|
+
source = source.join("\n")
|
36
32
|
|
37
|
-
|
38
|
-
end
|
33
|
+
expect { @element = clazz.new(source) }.to_not raise_error
|
39
34
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
'|param|',
|
44
|
-
'|value|']
|
45
|
-
source = source.join("\n")
|
35
|
+
# Sanity check in case instantiation failed in a non-explosive manner
|
36
|
+
@element.name.should == 'test example'
|
37
|
+
end
|
46
38
|
|
47
|
-
|
48
|
-
|
39
|
+
# todo - add more tests like this to the 'barebones' test set
|
40
|
+
it 'can be instantiated with the minimum viable Gherkin', :gherkin4 => true do
|
41
|
+
source = ['Examples:']
|
42
|
+
source = source.join("\n")
|
49
43
|
|
50
|
-
|
51
|
-
|
52
|
-
source = ['Examples:',
|
53
|
-
'|param|']
|
54
|
-
source = source.join("\n")
|
44
|
+
expect { @element = clazz.new(source) }.to_not raise_error
|
45
|
+
end
|
55
46
|
|
56
|
-
|
57
|
-
|
47
|
+
# todo - add more tests like this to the 'barebones' test set
|
48
|
+
it 'can be instantiated with the minimum viable Gherkin', :gherkin3 => true do
|
49
|
+
source = ['Examples:',
|
50
|
+
'|param|',
|
51
|
+
'|value|']
|
52
|
+
source = source.join("\n")
|
58
53
|
|
59
|
-
|
60
|
-
|
54
|
+
expect { @element = clazz.new(source) }.to_not raise_error
|
55
|
+
end
|
61
56
|
|
62
|
-
|
63
|
-
|
57
|
+
# todo - add more tests like this to the 'barebones' test set
|
58
|
+
it 'can be instantiated with the minimum viable Gherkin', :gherkin2 => true do
|
59
|
+
source = ['Examples:',
|
60
|
+
'|param|']
|
61
|
+
source = source.join("\n")
|
64
62
|
|
65
|
-
|
66
|
-
|
67
|
-
raw_data = example.raw_element
|
63
|
+
expect { @element = clazz.new(source) }.to_not raise_error
|
64
|
+
end
|
68
65
|
|
69
|
-
|
70
|
-
|
71
|
-
end
|
66
|
+
it 'provides a descriptive filename when being parsed from stand alone text' do
|
67
|
+
source = 'bad example text'
|
72
68
|
|
73
|
-
|
74
|
-
|
75
|
-
raw_data = example.raw_element
|
69
|
+
expect { clazz.new(source) }.to raise_error(/'cuke_modeler_stand_alone_example\.feature'/)
|
70
|
+
end
|
76
71
|
|
77
|
-
|
78
|
-
|
79
|
-
|
72
|
+
it 'stores the original data generated by the parsing adapter', :gherkin4 => true do
|
73
|
+
example = clazz.new("Examples: test example\n|param|\n|value|")
|
74
|
+
raw_data = example.raw_element
|
80
75
|
|
81
|
-
|
82
|
-
|
83
|
-
|
76
|
+
expect(raw_data.keys).to match_array([:type, :tags, :location, :keyword, :name, :tableHeader, :tableBody])
|
77
|
+
expect(raw_data[:type]).to eq(:Examples)
|
78
|
+
end
|
84
79
|
|
85
|
-
|
86
|
-
|
87
|
-
|
80
|
+
it 'stores the original data generated by the parsing adapter', :gherkin3 => true do
|
81
|
+
example = clazz.new("Examples: test example\n|param|\n|value|")
|
82
|
+
raw_data = example.raw_element
|
88
83
|
|
84
|
+
expect(raw_data.keys).to match_array([:type, :tags, :location, :keyword, :name, :tableHeader, :tableBody])
|
85
|
+
expect(raw_data[:type]).to eq(:Examples)
|
86
|
+
end
|
89
87
|
|
90
|
-
|
91
|
-
|
92
|
-
|
88
|
+
it 'stores the original data generated by the parsing adapter', :gherkin2 => true do
|
89
|
+
example = clazz.new("Examples: test example\n|param|\n|value|")
|
90
|
+
raw_data = example.raw_element
|
93
91
|
|
92
|
+
expect(raw_data.keys).to match_array(['keyword', 'name', 'line', 'description', 'id', 'rows'])
|
93
|
+
expect(raw_data['keyword']).to eq('Examples')
|
94
|
+
end
|
94
95
|
|
95
|
-
|
96
|
-
|
97
|
-
|
96
|
+
it 'has parameters' do
|
97
|
+
example.should respond_to(:parameters)
|
98
|
+
end
|
98
99
|
|
99
|
-
|
100
|
-
|
101
|
-
@example.parameters.should == :some_parameters
|
102
|
-
@example.parameters = :some_other_parameters
|
103
|
-
@example.parameters.should == :some_other_parameters
|
104
|
-
end
|
100
|
+
it 'can change its parameters' do
|
101
|
+
expect(example).to respond_to(:parameters=)
|
105
102
|
|
106
|
-
|
107
|
-
|
108
|
-
|
103
|
+
example.parameters = :some_parameters
|
104
|
+
example.parameters.should == :some_parameters
|
105
|
+
example.parameters = :some_other_parameters
|
106
|
+
example.parameters.should == :some_other_parameters
|
107
|
+
end
|
109
108
|
|
110
|
-
|
111
|
-
|
112
|
-
|
109
|
+
it 'starts with no parameters' do
|
110
|
+
example.parameters.should == []
|
111
|
+
end
|
113
112
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
@example.rows.should == :some_rows
|
118
|
-
@example.rows = :some_other_rows
|
119
|
-
@example.rows.should == :some_other_rows
|
120
|
-
end
|
113
|
+
it 'has rows' do
|
114
|
+
example.should respond_to(:rows)
|
115
|
+
end
|
121
116
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
end
|
117
|
+
#todo - remove once Hash rows are no longer supported
|
118
|
+
it 'can change its rows' do
|
119
|
+
expect(example).to respond_to(:rows=)
|
126
120
|
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
121
|
+
example.rows = :some_rows
|
122
|
+
example.rows.should == :some_rows
|
123
|
+
example.rows = :some_other_rows
|
124
|
+
example.rows.should == :some_other_rows
|
125
|
+
end
|
131
126
|
|
132
|
-
rows
|
127
|
+
#todo - remove once Hash rows are no longer supported
|
128
|
+
it 'starts with no rows' do
|
129
|
+
example.rows.should == []
|
130
|
+
end
|
133
131
|
|
134
|
-
rows
|
135
|
-
rows
|
136
|
-
|
137
|
-
|
132
|
+
#todo - remove once Hash rows are no longer supported
|
133
|
+
it 'stores its rows as an nested array of hashes' do
|
134
|
+
source = "Examples:\n|param1|param2|\n|value1|value2|"
|
135
|
+
example = clazz.new(source)
|
138
136
|
|
139
|
-
|
140
|
-
source = "Examples:\n|param1|param2|\n|value1|value2|\n|value3|value4|"
|
141
|
-
example = CukeModeler::Example.new(source)
|
137
|
+
rows = example.rows
|
142
138
|
|
143
|
-
|
139
|
+
rows.is_a?(Array).should be_true
|
140
|
+
rows.empty?.should be_false
|
141
|
+
rows.each { |row| row.is_a?(Hash).should be_true }
|
142
|
+
end
|
144
143
|
|
145
|
-
|
146
|
-
|
144
|
+
it 'does not include the parameter row as a row' do
|
145
|
+
source = "Examples:\n|param1|param2|\n|value1|value2|\n|value3|value4|"
|
146
|
+
example = clazz.new(source)
|
147
147
|
|
148
|
-
|
149
|
-
@example.should respond_to(:row_elements)
|
150
|
-
end
|
148
|
+
rows = example.rows
|
151
149
|
|
152
|
-
|
153
|
-
|
154
|
-
@example.row_elements.should == :some_row_elements
|
155
|
-
@example.row_elements = :some_other_row_elements
|
156
|
-
@example.row_elements.should == :some_other_row_elements
|
157
|
-
end
|
150
|
+
rows.should == [{'param1' => 'value1', 'param2' => 'value2'}, {'param1' => 'value3', 'param2' => 'value4'}]
|
151
|
+
end
|
158
152
|
|
159
|
-
|
160
|
-
|
161
|
-
|
153
|
+
it 'has row elements' do
|
154
|
+
example.should respond_to(:row_elements)
|
155
|
+
end
|
162
156
|
|
163
|
-
|
157
|
+
it 'can change its row elements' do
|
158
|
+
expect(example).to respond_to(:row_elements=)
|
164
159
|
|
165
|
-
|
166
|
-
|
160
|
+
example.row_elements = :some_row_elements
|
161
|
+
example.row_elements.should == :some_row_elements
|
162
|
+
example.row_elements = :some_other_row_elements
|
163
|
+
example.row_elements.should == :some_other_row_elements
|
167
164
|
end
|
168
165
|
|
169
|
-
it '
|
170
|
-
|
171
|
-
|
166
|
+
it 'starts with no row elements' do
|
167
|
+
example.row_elements.should == []
|
168
|
+
end
|
172
169
|
|
173
|
-
|
174
|
-
example.add_row(new_row)
|
170
|
+
describe '#add_row' do
|
175
171
|
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
end
|
172
|
+
it 'can add a new example row' do
|
173
|
+
clazz.new.should respond_to(:add_row)
|
174
|
+
end
|
180
175
|
|
181
|
-
|
182
|
-
|
183
|
-
|
176
|
+
it 'can add a new row as a hash' do
|
177
|
+
source = "Examples:\n|param1|param2|\n|value1|value2|"
|
178
|
+
example = clazz.new(source)
|
184
179
|
|
185
|
-
|
186
|
-
|
180
|
+
new_row = {'param1' => 'value3', 'param2' => 'value4'}
|
181
|
+
example.add_row(new_row)
|
187
182
|
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
183
|
+
#todo - remove once Hash rows are no longer supported
|
184
|
+
example.rows.should == [{'param1' => 'value1', 'param2' => 'value2'}, {'param1' => 'value3', 'param2' => 'value4'}]
|
185
|
+
example.row_elements.collect { |row| row.cells }[1..example.row_elements.count].should == [['value1', 'value2'], ['value3', 'value4']]
|
186
|
+
end
|
192
187
|
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
expect { @example.add_row(:a_row) }.to raise_error(ArgumentError)
|
197
|
-
end
|
188
|
+
it 'can add a new row as an array' do
|
189
|
+
source = "Examples:\n|param1|param2|\n|value1|value2|"
|
190
|
+
example = clazz.new(source)
|
198
191
|
|
199
|
-
|
200
|
-
|
201
|
-
example = CukeModeler::Example.new(source)
|
192
|
+
new_row = ['value3', 'value4']
|
193
|
+
example.add_row(new_row)
|
202
194
|
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
195
|
+
#todo - remove once Hash rows are no longer supported
|
196
|
+
example.rows.should == [{'param1' => 'value1', 'param2' => 'value2'}, {'param1' => 'value3', 'param2' => 'value4'}]
|
197
|
+
example.row_elements.collect { |row| row.cells }[1..example.row_elements.count].should == [['value1', 'value2'], ['value3', 'value4']]
|
198
|
+
end
|
207
199
|
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
200
|
+
it 'can only use a Hash or an Array to add a new row' do
|
201
|
+
expect { example.add_row({}) }.to_not raise_error
|
202
|
+
expect { example.add_row([]) }.to_not raise_error
|
203
|
+
expect { example.add_row(:a_row) }.to raise_error(ArgumentError)
|
204
|
+
end
|
213
205
|
|
214
|
-
|
206
|
+
it 'trims whitespace from added rows' do
|
207
|
+
source = "Examples:\n|param1|param2|\n|value1|value2|"
|
208
|
+
example = clazz.new(source)
|
215
209
|
|
216
|
-
|
217
|
-
|
210
|
+
hash_row = {'param1' => 'value3 ', 'param2' => ' value4'}
|
211
|
+
array_row = ['value5', ' value6 ']
|
212
|
+
example.add_row(hash_row)
|
213
|
+
example.add_row(array_row)
|
214
|
+
|
215
|
+
#todo - remove once Hash rows are no longer supported
|
216
|
+
example.rows.should == [{'param1' => 'value1', 'param2' => 'value2'}, {'param1' => 'value3', 'param2' => 'value4'}, {'param1' => 'value5', 'param2' => 'value6'}]
|
217
|
+
example.row_elements.collect { |row| row.cells }[1..example.row_elements.count].should == [['value1', 'value2'], ['value3', 'value4'], ['value5', 'value6']]
|
218
|
+
end
|
218
219
|
end
|
219
220
|
|
220
|
-
|
221
|
-
source = "Examples:\n|param1|param2|\n|value1|value2|\n|value3|value4|"
|
222
|
-
example = CukeModeler::Example.new(source)
|
221
|
+
describe '#remove_row' do
|
223
222
|
|
224
|
-
|
225
|
-
|
223
|
+
it 'can remove an existing example row' do
|
224
|
+
clazz.new.should respond_to(:remove_row)
|
225
|
+
end
|
226
226
|
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
end
|
227
|
+
it 'can remove an existing row as a hash' do
|
228
|
+
source = "Examples:\n|param1|param2|\n|value1|value2|\n|value3|value4|"
|
229
|
+
example = clazz.new(source)
|
231
230
|
|
232
|
-
|
233
|
-
|
234
|
-
example = CukeModeler::Example.new(source)
|
231
|
+
old_row = {'param1' => 'value3', 'param2' => 'value4'}
|
232
|
+
example.remove_row(old_row)
|
235
233
|
|
236
|
-
|
237
|
-
|
234
|
+
#todo - remove once Hash rows are no longer supported
|
235
|
+
example.rows.should == [{'param1' => 'value1', 'param2' => 'value2'}]
|
236
|
+
example.row_elements.collect { |row| row.cells }[1..example.row_elements.count].should == [['value1', 'value2']]
|
237
|
+
end
|
238
238
|
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
end
|
239
|
+
it 'can remove an existing row as an array' do
|
240
|
+
source = "Examples:\n|param1|param2|\n|value1|value2|\n|value3|value4|"
|
241
|
+
example = clazz.new(source)
|
243
242
|
|
244
|
-
|
245
|
-
|
246
|
-
expect { @example.remove_row([]) }.to_not raise_error
|
247
|
-
expect { @example.remove_row(:a_row) }.to raise_error(ArgumentError)
|
248
|
-
end
|
243
|
+
old_row = ['value3', 'value4']
|
244
|
+
example.remove_row(old_row)
|
249
245
|
|
250
|
-
|
251
|
-
|
252
|
-
|
246
|
+
#todo - remove once Hash rows are no longer supported
|
247
|
+
example.rows.should == [{'param1' => 'value1', 'param2' => 'value2'}]
|
248
|
+
example.row_elements.collect { |row| row.cells }[1..example.row_elements.count].should == [['value1', 'value2']]
|
249
|
+
end
|
253
250
|
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
251
|
+
it 'can only use a Hash or an Array to remove an existing row' do
|
252
|
+
expect { example.remove_row({}) }.to_not raise_error
|
253
|
+
expect { example.remove_row([]) }.to_not raise_error
|
254
|
+
expect { example.remove_row(:a_row) }.to raise_error(ArgumentError)
|
255
|
+
end
|
258
256
|
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
end
|
263
|
-
end
|
257
|
+
it 'trims whitespace from removed rows' do
|
258
|
+
source = "Examples:\n|param1|param2|\n|value1|value2|\n|value3|value4|\n|value5|value6|"
|
259
|
+
example = clazz.new(source)
|
264
260
|
|
265
|
-
|
261
|
+
hash_row = {'param1' => 'value3 ', 'param2' => ' value4'}
|
262
|
+
array_row = ['value5', ' value6 ']
|
263
|
+
example.remove_row(hash_row)
|
264
|
+
example.remove_row(array_row)
|
266
265
|
|
267
|
-
|
268
|
-
|
266
|
+
#todo - remove once Hash rows are no longer supported
|
267
|
+
example.rows.should == [{'param1' => 'value1', 'param2' => 'value2'}]
|
268
|
+
example.row_elements.collect { |row| row.cells }[1..example.row_elements.count].should == [['value1', 'value2']]
|
269
|
+
end
|
269
270
|
end
|
270
271
|
|
271
|
-
|
272
|
-
expect { @example.to_s }.to_not raise_error
|
273
|
-
end
|
272
|
+
describe 'example output edge cases' do
|
274
273
|
|
275
|
-
|
276
|
-
|
274
|
+
it 'is a String' do
|
275
|
+
example.to_s.should be_a(String)
|
276
|
+
end
|
277
277
|
|
278
|
-
|
279
|
-
end
|
278
|
+
context 'a new example object' do
|
280
279
|
|
281
|
-
|
282
|
-
@example.description_text = 'a description'
|
280
|
+
let(:example) { clazz.new }
|
283
281
|
|
284
|
-
expect { @example.to_s }.to_not raise_error
|
285
|
-
end
|
286
282
|
|
287
|
-
|
288
|
-
|
283
|
+
it 'can output an empty example' do
|
284
|
+
expect { example.to_s }.to_not raise_error
|
285
|
+
end
|
289
286
|
|
290
|
-
|
291
|
-
|
287
|
+
it 'can output an example that has only a name' do
|
288
|
+
example.name = 'a name'
|
292
289
|
|
293
|
-
|
294
|
-
|
295
|
-
@example.parameters = ['param1']
|
290
|
+
expect { example.to_s }.to_not raise_error
|
291
|
+
end
|
296
292
|
|
297
|
-
|
298
|
-
|
293
|
+
it 'can output an example that has only a description' do
|
294
|
+
example.description_text = 'a description'
|
299
295
|
|
300
|
-
|
301
|
-
|
302
|
-
|
296
|
+
expect { example.to_s }.to_not raise_error
|
297
|
+
end
|
298
|
+
|
299
|
+
it 'can output an example that has only tags' do
|
300
|
+
example.tags = ['a tag']
|
301
|
+
|
302
|
+
expect { example.to_s }.to_not raise_error
|
303
|
+
end
|
304
|
+
|
305
|
+
#todo - remove once Hash rows are no longer supported
|
306
|
+
it 'can output an example that only has parameters' do
|
307
|
+
example.parameters = ['param1']
|
308
|
+
|
309
|
+
expect { example.to_s }.to_not raise_error
|
310
|
+
end
|
311
|
+
|
312
|
+
#todo - remove once Hash rows are no longer supported
|
313
|
+
it 'can output an example that only has rows' do
|
314
|
+
example.rows = [{:param1 => 'row1'}]
|
315
|
+
|
316
|
+
expect { example.to_s }.to_not raise_error
|
317
|
+
end
|
318
|
+
|
319
|
+
end
|
303
320
|
|
304
|
-
expect { @example.to_s }.to_not raise_error
|
305
321
|
end
|
306
322
|
|
307
323
|
end
|