macros4cuke 0.2.16 → 0.2.17
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 +5 -0
- data/README.md +16 -0
- data/lib/macros4cuke/constants.rb +1 -1
- data/spec/macros4cuke/templating/engine_spec.rb +22 -0
- metadata +2 -2
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
## 0.2.17 / 2013-05-05
|
2
|
+
* [CHANGE] File `engine_spec.rb`: Added more RSpec examples. SimpleCov code coverage raised to more than 96%.
|
3
|
+
* [CHANGE] Added section in README.md
|
4
|
+
|
5
|
+
|
1
6
|
## 0.2.16 / 2013-05-04
|
2
7
|
* [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).
|
3
8
|
* [CHANGE] File `macro-step-support_spec.rb`: Added one RSpec example
|
data/README.md
CHANGED
@@ -245,6 +245,22 @@ Here are few observations worth noticing:
|
|
245
245
|
the value "Main Street, 22".
|
246
246
|
- Data rows don't have to follow strictly the order of the arguments in the sub-step sequence.
|
247
247
|
|
248
|
+
## With great power comes great responsibility. ##
|
249
|
+
_Stan Lee_
|
250
|
+
|
251
|
+
Our experience is that macro-steps change deeply the way one designs and writes feature files.
|
252
|
+
Macro-steps are most useful in UI-testing (e.g. with tools like Capybara) because they help to close
|
253
|
+
the gap between the user's intent and the low-level user interface actions.
|
254
|
+
In addition __Macros4Cuke__ allows advanced users to craft their own steps without having to program step definitions.
|
255
|
+
This last argument becomes important in the context of user acceptance testing, a domain where the assumption that
|
256
|
+
every tester is also Rubyist is -alas!- far from the truth.
|
257
|
+
|
258
|
+
|
259
|
+
Macros with Cucumber is highly debated topic, so it is always wise to know what other people say about it:
|
260
|
+
[Support for Macros] (https://github.com/cucumber/gherkin/issues/178)
|
261
|
+
[Substeps - macro request for the nth time] (http://grokbase.com/t/gg/cukes/133ey063b8/cucumber-substeps-macro-request-for-the-nth-time)
|
262
|
+
|
263
|
+
|
248
264
|
Copyright
|
249
265
|
---------
|
250
266
|
Copyright (c) 2013, Dimitri Geshef. Macros4Cuke is released under the MIT License see [LICENSE.txt](https://github.com/famished-tiger/Macros4Cuke/blob/master/LICENSE.txt) for details.
|
@@ -134,6 +134,18 @@ SNIPPET
|
|
134
134
|
error_message = "Missing closing chevron '>'."
|
135
135
|
lambda { Engine::parse(sample_text) }.should raise_error(StandardError, error_message)
|
136
136
|
end
|
137
|
+
|
138
|
+
it "should complain if a text misses an opening chevron" do
|
139
|
+
sample_text = 'begin <some_tag> > end'
|
140
|
+
error_message = "Missing opening chevron '<'."
|
141
|
+
lambda { Engine::parse(sample_text) }.should raise_error(StandardError, error_message)
|
142
|
+
end
|
143
|
+
|
144
|
+
it "should complain if a text ha&s nested opening chevrons" do
|
145
|
+
sample_text = 'begin <<some_tag> > end'
|
146
|
+
error_message = "Nested opening chevron '<'."
|
147
|
+
lambda { Engine::parse(sample_text) }.should raise_error(StandardError, error_message)
|
148
|
+
end
|
137
149
|
|
138
150
|
end # context
|
139
151
|
|
@@ -166,12 +178,22 @@ SNIPPET
|
|
166
178
|
context "Provided services" do
|
167
179
|
|
168
180
|
it "should know the variable(s) it contains" do
|
181
|
+
# Case using the sample template
|
169
182
|
subject.variables == [:userid, :password]
|
170
183
|
|
171
184
|
# Case of an empty source template text
|
172
185
|
instance = Engine.new ''
|
173
186
|
instance.variables.should be_empty
|
174
187
|
end
|
188
|
+
|
189
|
+
|
190
|
+
it "should ignore variables/placeholders in comments" do
|
191
|
+
substeps = " # Comment 1 <miscellaneous>\n" + sample_template
|
192
|
+
substeps += " #\n Comment 2 <haphazard>"
|
193
|
+
instance = Engine.new substeps
|
194
|
+
subject.variables == [:userid, :password]
|
195
|
+
end
|
196
|
+
|
175
197
|
|
176
198
|
it "should render the text given the actuals" do
|
177
199
|
locals = {'userid' => "johndoe"}
|
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.2.
|
4
|
+
version: 0.2.17
|
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-
|
12
|
+
date: 2013-05-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cucumber
|