macros4cuke 0.3.24 → 0.3.25

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.
data/CHANGELOG.md CHANGED
@@ -1,29 +1,37 @@
1
- ## 0.3.24 / 2013-05-28
1
+ ### 0.3.25 / 2013-05-30
2
+ * [NEW] File `exceptions.rb`: New exception class AmbiguousArgumentValue.
3
+ * [CHANGE] Method `MacroStep#validate_params`: an AmbiguousArgumentValue is raised when a macro argument get its value from phrase and data table at the same time.
4
+ * [CHANGE] File `macro-step_spec.rb`: Added specific test for new exception.
5
+ * [CHANGE] File `README.md`: Added a pre-requisites section and a FAQ section.
6
+ * [CHANGE] File `demo_steps.rb`: Removed one Rubocop's complain 'Line is too long'.
7
+ * [CHANGE] File `CHANGELOG.md`: change in headings style.
8
+
9
+ ### 0.3.24 / 2013-05-28
2
10
  * [CHANGE] File `.rubocop.yml`: A few new Rubocop 0.8.0 checks are disabled.
3
11
  * [CHANGE] Many source files refactored to satisfy new "cops" from Rubocop 0.8.0
4
12
 
5
- ## 0.3.23 / 2013-05-26
13
+ ### 0.3.23 / 2013-05-26
6
14
  * [CHANGE] Demo file `table.feature`: Added one scenario combining argument passing via the phrase and table.
7
15
 
8
- ## 0.3.22 / 2013-05-25
16
+ ### 0.3.22 / 2013-05-25
9
17
  * [CHANGE] File `macro-collection_spec.rb`: Added one test for the `MacroCollection#render_steps` method.
10
18
 
11
- ## 0.3.21 / 2013-05-24
19
+ ### 0.3.21 / 2013-05-24
12
20
  * [CHANGE] File `.rubocop.yml`: StringLiterals cop is now enabled.
13
21
  * [CHANGE] Many file: replaced double quotes by single quotes in order to pass the StringLiterals Robocop rule.
14
22
 
15
- ## 0.3.20 / 2013-05-23
23
+ ### 0.3.20 / 2013-05-23
16
24
  * [CHANGE] File `.travis.yml`: Added more CI environments: ruby-head and jruby-head.
17
25
  * [CHANGE] File `Rakefile`: Added task to push gem to Rubygems.
18
26
 
19
- ## 0.3.19 / 2013-05-22
27
+ ### 0.3.19 / 2013-05-22
20
28
  * [CHANGE] File `.rubocop.yml`: Reduced MethodLength to 30 (lines in a method).
21
29
  * [CHANGE] Method `Engine#compile_line refactored: Extract Method pattern => new method line_rep_ending added.
22
30
  * [CHANGE] Method `Engine#compile_sections refactored: Extract Method pattern => new method validate_section_end added.
23
31
  * [FIX] File `exceptions.rb`: Removal of useless assignment (detected by Rubocop). No runtime impact.
24
32
 
25
33
 
26
- ## 0.3.18 / 2013-05-21
34
+ ### 0.3.18 / 2013-05-21
27
35
  * [FEATURE] Support for sub-steps having multiline text arguments (docstring).
28
36
  * [CHANGE] Method `MacroStep#expand passes` also built-in arguments to template engine.
29
37
  * [CHANGE] Method `MacroStep#validate_phrase_args` does not apply validations on built-in arguments.
@@ -31,66 +39,66 @@
31
39
  * [NEW] File `multiline.feature` added in examples/features/ folder.
32
40
  * [CHANGE] File `README.md`: Added section 'Sub-steps with multiline text argument'
33
41
 
34
- ## 0.3.17 / 2013-05-20
42
+ ### 0.3.17 / 2013-05-20
35
43
  * [CHANGE] File `README.md`: Added dynamic dependencies badge (Gemnasium).
36
44
 
37
- ## 0.3.16 / 2013-05-20
45
+ ### 0.3.16 / 2013-05-20
38
46
  * [CHANGE] File `demo06.feature`: Added a scenario that causes a specific exception to be raised.
39
47
  * [CHANGE] File `demo_steps.rb`: Added a specific step that raises a TableNotException. It is captured and compared to expectations.
40
48
  * [CHANGE] File `engine.rb`: Removed two lines that were never executed.
41
49
 
42
- ## 0.3.15 / 2013-05-20
50
+ ### 0.3.15 / 2013-05-20
43
51
  * [FIX] File `.CHANGELOG.md` Date entries weren't incremented.
44
52
  * [CHANGE] File `.rubocop.yml`: Added more configuration entries.
45
53
  * [CHANGE] Spec files updated to better please Rubocop.
46
54
 
47
- ## 0.3.14 / 2013-05-18
55
+ ### 0.3.14 / 2013-05-18
48
56
  * [FIX] lib/ folder in secondary local repository was messed up. Gem was OK.
49
57
 
50
- ## 0.3.13 / 2013-05-18
58
+ ### 0.3.13 / 2013-05-18
51
59
  * [NEW] File `.rubocop.yml` Added.
52
60
  * [CHANGE] Many source files changed to please Rubocop.
53
61
 
54
- ## 0.3.12 / 2013-05-17
62
+ ### 0.3.12 / 2013-05-17
55
63
  * [NEW] File `.ruby-gemset` Added (for RVM users).
56
64
  * [NEW] File `.ruby-version` Added (for RVM users).
57
65
 
58
- ## 0.3.11 / 2013-05-16
66
+ ### 0.3.11 / 2013-05-16
59
67
  * [CHANGE] File `README.md`: Minor reformating.
60
68
  * [CHANGE] File `basic.feature` (in examples/): Added one more macro-step example.
61
69
 
62
- ## 0.3.10 / 2013-05-15
70
+ ### 0.3.10 / 2013-05-15
63
71
  * [CHANGE] File `README.md`: Expanded section on conditional section.
64
72
  * [CHANGE] Method `Templating::Engine::parse` slightly refactored in order to decrease its complexity.
65
73
 
66
- ## 0.3.09 / 2013-05-14
74
+ ### 0.3.09 / 2013-05-14
67
75
  * [CHANGE] File `.travis.yml`: Added jruby as a target Ruby
68
76
 
69
- ## 0.3.08 / 2013-05-13
77
+ ### 0.3.08 / 2013-05-13
70
78
  * [CHANGE] File `README.md`: Added Gem Version badge
71
79
 
72
- ## 0.3.07 / 2013-05-12
80
+ ### 0.3.07 / 2013-05-12
73
81
  * [CHANGE] File `README.md`: Added Codeclimate badge
74
82
 
75
- ## 0.3.06 / 2013-05-12
83
+ ### 0.3.06 / 2013-05-12
76
84
  * [FIX] File `README.md`: Fixed formatting issue of Travis CI status badge
77
85
 
78
- ## 0.3.05 / 2013-05-12 Unreleased
86
+ ### 0.3.05 / 2013-05-12 Unreleased
79
87
  * [CHANGE] File `README.md`: Added Travis CI status badge
80
88
 
81
- ## 0.3.04 / 2013-05-12 Unreleased
89
+ ### 0.3.04 / 2013-05-12 Unreleased
82
90
  * [NEW] File `.travis.yml`: Added for integration with Travis CI
83
91
  * [NEW] File `Gemfile`: Added for integration with Bundler
84
92
  * [NEW] File `Rakefile`: Added with test tasks
85
93
  * [CHANGE] File `macros4cuke.gemspec`: added development dependency on rake.
86
94
 
87
- ## 0.3.03 / 2013-05-11
95
+ ### 0.3.03 / 2013-05-11
88
96
  * [CHANGE] File `README.md`: added section on conditional section.
89
97
 
90
- ## 0.3.02 / 2013-05-11
98
+ ### 0.3.02 / 2013-05-11
91
99
  * [FIX] File `macro_steps.rb`: Recovered. Was missing in the 0.3.01 gem!
92
100
 
93
- ## 0.3.01 / 2013-05-10
101
+ ### 0.3.01 / 2013-05-10
94
102
  * [NEW] features/ folder: added `demo06.feature` file showing the new conditional section.
95
103
  * [NEW] File `placeholder_spec.rb`: Added a RSpec file to test the Placeholder class.
96
104
  * [CHANGE] File `macro_steps.rb` Macro-step definition accepts the '*' Gherkin keyword.
@@ -102,15 +110,15 @@
102
110
  * [CHANGE] examples/ folder expanded and reorganized
103
111
  * [FIX] Method `Section#render` fixed typo in call to __method__
104
112
 
105
- ## 0.3.00 / 2013-05-09 Version number bumped
113
+ ### 0.3.00 / 2013-05-09 Version number bumped
106
114
  * [CHANGE] Class `Templating::Engine` can handle conditional tags (TODO: document).
107
115
  * [CHANGE] File `engine_spec.rb`: Added a RSpec examples to test the conditional tags.
108
116
 
109
117
 
110
- ## 0.2.22 / 2013-05-08
118
+ ### 0.2.22 / 2013-05-08
111
119
  [CHANGE] File `README.md`: expanded the section on macro arguments.
112
120
 
113
- ## 0.2.21 / 2013-05-08
121
+ ### 0.2.21 / 2013-05-08
114
122
  * [NEW] Added new class `Templating::UnaryElement`.
115
123
  * [CHANGE] Made `Placeholder` class inherit from `UnaryElement`.
116
124
  * [NEW] Added new class `Templating::Section`, a subclass of `UnaryElement`.
@@ -118,52 +126,52 @@
118
126
  * [CHANGE] Method Engine#parse_tag modified in prevision of conditional tags.
119
127
  * [NEW] File `section_spec.rb`: Added a RSpec file to test the Conditional class.
120
128
 
121
- ## 0.2.20 / 2013-05-07
129
+ ### 0.2.20 / 2013-05-07
122
130
  * [NEW] Added `examples` folder with a first example of an internationalized customisation of __Macros4Cuke__.
123
131
 
124
- ## 0.2.19 / 2013-05-07
132
+ ### 0.2.19 / 2013-05-07
125
133
  * [CHANGE] Added validation of macro argument names in new `Engine::parse_tag` method.
126
134
  * [CHANGE] InvalidCharError exception added.
127
135
  * [CHANGE] File `engine_spec.rb`: Added one RSpec example for an invalid argument name.
128
136
  * [CHANGE] File `README.md`: added a new section on naming macro arguments.
129
137
 
130
- ## 0.2.18 / 2013-05-06
138
+ ### 0.2.18 / 2013-05-06
131
139
  * [CHANGE] Amended spec files and added a new demo feature. SimpleCov code coverage raised to more than 97%.
132
140
  * [CHANGE] Macro-step arguments can be multivalued (experimental)
133
141
 
134
- ## 0.2.17 / 2013-05-05
142
+ ### 0.2.17 / 2013-05-05
135
143
  * [CHANGE] File `engine_spec.rb`: Added more RSpec examples. SimpleCov code coverage raised to more than 96%.
136
144
  * [CHANGE] Added section in README.md
137
145
 
138
146
 
139
- ## 0.2.16 / 2013-05-04
147
+ ### 0.2.16 / 2013-05-04
140
148
  * [FEATURE] Added dependency to SimpleCov. It is used to measure test code coverage (the combination of Cucumber and RSpec result in 95.9% code coverage).
141
149
  * [CHANGE] File `macro-step-support_spec.rb`: Added one RSpec example
142
150
 
143
- ## 0.2.15 / 2013-05-03
151
+ ### 0.2.15 / 2013-05-03
144
152
  * [CHANGE] File `macro-step-support_spec.rb`: Added one RSpec example.
145
153
  * [FIX] Updated gemspec.
146
154
 
147
155
 
148
- ## 0.2.14 / 2013-05-03
156
+ ### 0.2.14 / 2013-05-03
149
157
  * [CHANGE] Code comments reformatted to YARD. The command line `yard stats`display a 100% documented score!
150
158
  * [CHANGE] Moved all classes related to the template engine to the new module Templating.
151
159
  * [CHANGE] Classes `StaticRep, EOLRep, VariableRep, TemplateEngine` renamed to `StaticText, EOLine, Placeholder, Engine` respectively.
152
160
  * [CHANGE] Added spec file for `MacroStepSupport` module.
153
161
  * [CHANGE] Initialization of `MacroStepSupport` singleton changed (no dependency on `extended` hook).
154
162
 
155
- ## 0.2.13 / 2013-05-02
163
+ ### 0.2.13 / 2013-05-02
156
164
  * [NEW] File `macro-collection_spec.rb`: partial spec file for the `MacroCollection` class.
157
165
  * [FIX] `DuplicateMacroError#initialize`: Removed superfluous [ in error message.
158
166
 
159
- ## 0.2.12 / 2013-05-01
167
+ ### 0.2.12 / 2013-05-01
160
168
  * [CHANGE] Method `Macros4Cuke#compile` raise an `EmptyArgumentError` exception when a line contains an empty or blank argument.
161
169
  * [CHANGE] File `template-engine_spec.rb`: Added an example for error case mentioned in previous line.
162
170
 
163
- ## 0.2.11 / 2013-05-01
171
+ ### 0.2.11 / 2013-05-01
164
172
  * [CHANGE] File `macros4cuke.gemspec`: Removed dependency on Rake.
165
173
 
166
- ## 0.2.10 / 2013-04-30
174
+ ### 0.2.10 / 2013-04-30
167
175
 
168
176
  * [CHANGE] `CHANGELOG.md` replaces `HISTORY.md` file. Partial reformatting of historical entries to [Changelogs Convention](tech-angels.github.com/vandamme/#changelogs-convention)
169
177
  * [CHANGE] Method `MacroStep#initialize`: added the detection of two inconsistencies in macro arguments.
@@ -173,13 +181,13 @@
173
181
  * [CHANGE] File `macro-step_spec.rb`: Added examples covering the new validation rules in `MacroStep#initialize` method.
174
182
  * [FIX] `UnknownArgumentError#initialize` Typo in error message.
175
183
 
176
- ## 0.2.09 / 2013-04-29
184
+ ### 0.2.09 / 2013-04-29
177
185
 
178
186
  * [CHANGE] Added one capturing group in regexp of macro defining step to detect data passing via table.
179
187
  * [CHANGE] Class `MacroStep`: added an explicit argument for data passing via table mode.
180
188
 
181
189
 
182
- ## 0.2.08 / 2013-04-29
190
+ ### 0.2.08 / 2013-04-29
183
191
 
184
192
  * [CHANGE] Signature of `MacroStep#expand` changed.
185
193
  * [CHANGE] `MacroStep#validate_params` method is now private
@@ -188,45 +196,45 @@
188
196
  * [CHANGE] File `macro-step_spec.rb`: added test case when a macro is called with unknown argument.
189
197
  * [FIX] macro-step.rb: added a missing `require 'exceptions'`.
190
198
 
191
- ## 0.2.07 / 2013-04-29
199
+ ### 0.2.07 / 2013-04-29
192
200
 
193
201
  * [FIX] Editorial improvements in `README.md`, corrected one inaccurate sentence.
194
202
 
195
203
 
196
- ## 0.2.06 / 2013-04-28
204
+ ### 0.2.06 / 2013-04-28
197
205
 
198
206
  * [CHANGE] Formatting improvements in `README.md`.
199
207
 
200
208
 
201
- ## 0.2.05 / 2013-04-28
209
+ ### 0.2.05 / 2013-04-28
202
210
 
203
211
  * [CHANGE] Expanded `README.md` with macro-step invokation, passing data value via a table.
204
212
 
205
213
 
206
- ## 0.2.04 / 2013-4-27
214
+ ### 0.2.04 / 2013-4-27
207
215
 
208
216
  * [FIX] `MacroCollection#add_macro method`: typo correction.
209
217
 
210
218
 
211
- ## 0.2.03 / Unreleased
219
+ ### 0.2.03 / Unreleased
212
220
 
213
221
  * [CHANGE] Regexp of defining step is more general: it accepts the Gherkin adverbs `Given, When, Then, And`.
214
222
 
215
223
 
216
- ## 0.2.02 / 2013-4-26
224
+ ### 0.2.02 / 2013-4-26
217
225
 
218
226
  * [CHANGE] Added an example in `template-engine_spec.rb` file.
219
227
  * [CHANGE] Expanded `README.md` file.
220
228
 
221
229
 
222
- ## 0.2.01 / 2013-4-26
230
+ ### 0.2.01 / 2013-4-26
223
231
 
224
232
  * [CHANGE] Regexps in step definitions accept escape character sequence.
225
233
  * [CHANGE] Expanded `README.md` file.
226
234
  * [FIX] Corrected remnant of Mustache template in `travelling_demo.feature` file.
227
235
 
228
236
 
229
- ## 0.2.00 / 2013-4-25 Version number was bumped
237
+ ### 0.2.00 / 2013-4-25 Version number was bumped
230
238
 
231
239
  * [CHANGE] Replaced the Mustache template engine by own lightweight TemplateEngine
232
240
  * [CHANGE] Macro-step arguments have a syntax that is closer to Gherkin's scenario outlines.
@@ -236,42 +244,42 @@
236
244
  * [CHANGE] examples in `README.md` updated.
237
245
 
238
246
 
239
- ## 0.1.07 / 2013-4-24
247
+ ### 0.1.07 / 2013-4-24
240
248
 
241
249
  * [CHANGE] Added new class `TemplateEngine`.
242
250
 
243
251
 
244
- ## 0.1.06 / 2013-4-24
252
+ ### 0.1.06 / 2013-4-24
245
253
 
246
254
  * [FIX] Format fix in README.md
247
255
  * [FIX] `HISTORY.md` file updated with missing entries/
248
256
 
249
257
 
250
- ## 0.1.05 / Unreleased
258
+ ### 0.1.05 / Unreleased
251
259
 
252
260
  * [CHANGE] `demo_steps.rb`. Added few step definitions that emit output to the screen (so that at least something is shown in the demo).
253
261
  * [CHANGE] `MacroStep` class: regexp slightly reworked to accept escaped double quotes in actual values.
254
262
  * [CHANGE] `travelling_demo.feature`: Added one example with escaped quotes in actual value.
255
263
 
256
264
 
257
- ## 0.1.04 / 2013-4-23
265
+ ### 0.1.04 / 2013-4-23
258
266
 
259
267
  * [ENHANCEMENT] Gherkin comments are allowed in sub-steps sequence. Previous version supported only Mustache comments.
260
268
  * [CHANGE] Added a few more examples in the `travelling-demo.feature` file.
261
269
 
262
270
 
263
- ## 0.1.03 / 2013-4-23
271
+ ### 0.1.03 / 2013-4-23
264
272
 
265
273
  * [CHANGE] `README.md` slightly reworked and added link to Mustache.
266
274
  * [CHANGE] File `env.rb`: moved all dependencies on Macros4Cuke to the file `macro_support.rb`
267
275
  * [CHANGE] File `travelling-demo.feature`: Demo feature file with output on the screen (the other demos don't display any result).
268
276
 
269
277
 
270
- ## 0.0.02 / 2013-04-21
278
+ ### 0.0.02 / 2013-04-21
271
279
 
272
280
  * [CHANGE] `README.md`: added a reference to the features folder.
273
281
 
274
282
 
275
- ## 0.0.01 / 2013-04-21
283
+ ### 0.0.01 / 2013-04-21
276
284
 
277
285
  * [FEATURE] Initial public working version
data/README.md CHANGED
@@ -59,6 +59,11 @@ Macros4Cuke not only helps in getting rid of the repeated step sequences,
59
59
  See also the working examples in the ```features/``` folder.
60
60
 
61
61
  ## Setup ##
62
+ ### Pre-requisites ###
63
+ Macros4Cuke works with:
64
+ - MRI Ruby 1.9.x and 2.0.x.
65
+ - JRuby (was tested with version 1.7.3 and above).
66
+
62
67
  ### Installation ###
63
68
  To install the macros4cuke gem:
64
69
  ```bash
@@ -406,6 +411,35 @@ Think of specific UI-events that can trigger some special system response.
406
411
 
407
412
 
408
413
 
414
+ ## FAQ ##
415
+ __Q__: Can I define a macro in one scenario and invoke it in another scenario in the same feature file?
416
+ __A__: Yes. Once a macro is defined in a feature file it can be invoked in any scenario that follows the definition.
417
+ In fact, the macro can be invoked in any scenario from any feature file, provided the invokation takes place _after_ the
418
+ macro definition.
419
+
420
+ __Q__: So, a macro can be shared between multiple files.
421
+ __A__: Indeed. This is similar to genuine step definitions which are global (accessible to every feature files).
422
+ For macro-steps, again, they can be used anywhere after their definition.
423
+
424
+ __Q__: How should I pass arguments: via the phrase or a data table?
425
+ __A__: Both data passing mechanisms can be used at the same time. Favour data value passing
426
+ via the phrase when the number of macro arguments is small (say, <= 2).
427
+
428
+ __Q__: Can I define a macro-step in a Background section?
429
+ __A__: No. Here is why: Every step from the Background section is executed in each scenario (outline).
430
+ If a macro were defined in the Background, then the macro definition will occur multiple times, which is
431
+ flagged as an error by Macros4Cuke.
432
+
433
+ __Q__: Can I define a macro-step in a Scenario Outline?
434
+ __A__: No, if the scenario outline has multiple rows then an error will occur. Bear in mind,
435
+ that steps in a scenario outline are repeating n times, n being the number of rows in the example table.
436
+ Since a macro can only be defined once, placing a macro definition in a scenario outline will
437
+ most likely cause an error.
438
+
439
+ __Q__: Can I invoke/call a macro-step in a Background or Scenario Outline?
440
+ __A__: Yes. A macro-step can be invoked many times.
441
+
442
+
409
443
 
410
444
  ## With great power comes great responsibility. ##
411
445
  _Stan Lee_
@@ -32,7 +32,8 @@ SNIPPET
32
32
  begin
33
33
  steps(wrong)
34
34
  rescue Macros4Cuke::DataTableNotFound => exc
35
- msg = 'The step with phrase [fill in the form with]: requires a data table.'
35
+ phrase = '[fill in the form with]:'
36
+ msg = "The step with phrase #{phrase} requires a data table."
36
37
  exc.message.should == msg
37
38
  end
38
39
  end
@@ -4,7 +4,7 @@
4
4
 
5
5
  module Macros4Cuke # Module used as a namespace
6
6
  # The version number of the gem.
7
- Version = '0.3.24'
7
+ Version = '0.3.25'
8
8
 
9
9
  # Brief description of the gem.
10
10
  Description = 'Macros for Cucumber'
@@ -36,6 +36,17 @@ class UnreachableSubstepArgument < Macros4CukeError
36
36
  end # class
37
37
 
38
38
 
39
+ # Raised when one passes one value for an argument via the macro-step's phrase
40
+ # and a value for that same argument via the the data table.
41
+ # and that argument name does not appear in any sub-step.
42
+ class AmbiguousArgumentValue < Macros4CukeError
43
+ def initialize(anArgName, valuePhrase, valueTable)
44
+ msg = "The macro argument '#{anArgName}' has value '#{valuePhrase}' and 'valueTable'."
45
+ super(msg)
46
+ end
47
+ end # class
48
+
49
+
39
50
 
40
51
  # Raised when a sub-step has an empty or blank argument name.
41
52
  class EmptyArgumentError < Macros4CukeError
@@ -136,14 +136,17 @@ private
136
136
  macro_parameters = {}
137
137
 
138
138
  # Retrieve the value(s) per variable in the phrase.
139
- quoted_values = scan_arguments(aPhrase, :invokation)
139
+ quoted_values = scan_arguments(aPhrase, :invokation)
140
140
  quoted_values.each_with_index do |val, index|
141
141
  macro_parameters[phrase_args[index]] = val
142
142
  end
143
-
143
+
144
144
  unless rawData.nil?
145
145
  rawData.each do |(a_key, value)|
146
146
  raise UnknownArgumentError.new(a_key) unless @args.include? a_key
147
+ if (phrase_args.include? a_key) && (macro_parameters[a_key] != value)
148
+ raise AmbiguousArgumentValue.new(a_key, macro_parameters[a_key], value)
149
+ end
147
150
  if macro_parameters.include? a_key
148
151
  if macro_parameters[a_key].kind_of?(Array)
149
152
  macro_parameters[a_key] << value
@@ -67,7 +67,6 @@ end
67
67
  context 'Provided services:' do
68
68
 
69
69
  let(:phrase_instance) { %Q|enter my credentials as "nobody"| }
70
-
71
70
  it 'should render the substeps' do
72
71
  text = subject.expand(phrase_instance, [ %w(password no-secret) ])
73
72
  expectation = <<-SNIPPET
@@ -117,6 +116,16 @@ SNIPPET
117
116
  ->(){ subject.expand(phrase_instance, args) }.should raise_error(
118
117
  UnknownArgumentError, error_message)
119
118
  end
119
+
120
+
121
+ it 'should complain when argument gets a value from phrase and table' do
122
+ # Error case: there is no macro argument called <unknown>
123
+ phrase = %Q|enter my credentials as "nobody"|
124
+ msg = "The macro argument 'userid' has value 'nobody' and 'valueTable'."
125
+ args = [ %w(userid someone), %w(password no-secret) ]
126
+ ->(){ subject.expand(phrase, args) }.should raise_error(
127
+ AmbiguousArgumentValue, msg)
128
+ end
120
129
 
121
130
 
122
131
  it 'should expand built-in variables' do
@@ -135,7 +144,7 @@ SNIPPET
135
144
  expected = substeps.gsub(/<quotes>/, '"""')
136
145
  actual.should == expected
137
146
  end
138
-
147
+
139
148
 
140
149
  end # context
141
150
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: macros4cuke
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.24
4
+ version: 0.3.25
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-28 00:00:00.000000000 Z
12
+ date: 2013-05-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cucumber