cucumber 0.2.3 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +56 -1
- data/Manifest.txt +70 -49
- data/config/hoe.rb +1 -1
- data/cucumber.yml +1 -1
- data/examples/i18n/bg/Rakefile +6 -0
- data/examples/i18n/bg/features/addition.feature +11 -0
- data/examples/i18n/bg/features/consecutive_calculations.feature +18 -0
- data/examples/i18n/bg/features/division.feature +16 -0
- data/examples/i18n/bg/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/bg/features/support/env.rb +6 -0
- data/examples/i18n/bg/features/support/world.rb +8 -0
- data/examples/i18n/bg/lib/calculator.rb +24 -0
- data/examples/i18n/ru/features/support/world.rb +4 -3
- data/examples/i18n/sk/Rakefile +6 -0
- data/examples/i18n/sk/features/addition.feature +16 -0
- data/examples/i18n/sk/features/division.feature +9 -0
- data/examples/i18n/sk/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/sk/lib/calculator.rb +14 -0
- data/examples/self_test/features/background/background_with_name.feature +7 -0
- data/examples/self_test/features/background/passing_background.feature +2 -2
- data/examples/self_test/features/step_definitions/sample_steps.rb +18 -2
- data/examples/self_test/features/undefined_multiline_args.feature +12 -0
- data/examples/sinatra/features/support/env.rb +2 -6
- data/examples/test_unit/features/step_definitions/test_unit_steps.rb +1 -4
- data/examples/tickets/Rakefile +1 -1
- data/examples/tickets/features/229/tagged_hooks.feature +8 -0
- data/examples/tickets/features/229/tagged_hooks.rb +14 -0
- data/examples/tickets/features/270/back.feature +14 -0
- data/examples/tickets/features/270/back.steps.rb +14 -0
- data/examples/tickets/features/279/py_string_indent.feature +25 -0
- data/examples/tickets/features/279/py_string_indent.steps.rb +12 -0
- data/examples/tickets/features/279/wrong.feature_ +11 -0
- data/examples/tickets/features/step_definitons/tickets_steps.rb +0 -7
- data/features/background.feature +21 -3
- data/features/cucumber_cli.feature +18 -5
- data/features/cucumber_cli_outlines.feature +4 -1
- data/features/rake_task.feature +132 -0
- data/features/snippet.feature +23 -0
- data/features/step_definitions/cucumber_steps.rb +46 -15
- data/features/support/env.rb +61 -4
- data/features/usage.feature +5 -0
- data/gem_tasks/deployment.rake +1 -1
- data/lib/cucumber/ast/background.rb +14 -4
- data/lib/cucumber/ast/examples.rb +0 -12
- data/lib/cucumber/ast/feature.rb +2 -12
- data/lib/cucumber/ast/feature_element.rb +4 -8
- data/lib/cucumber/ast/features.rb +1 -1
- data/lib/cucumber/ast/outline_table.rb +20 -20
- data/lib/cucumber/ast/py_string.rb +6 -11
- data/lib/cucumber/ast/scenario.rb +1 -8
- data/lib/cucumber/ast/scenario_outline.rb +1 -11
- data/lib/cucumber/ast/step.rb +3 -9
- data/lib/cucumber/ast/step_collection.rb +0 -4
- data/lib/cucumber/ast/step_invocation.rb +5 -6
- data/lib/cucumber/ast/table.rb +5 -22
- data/lib/cucumber/ast/tags.rb +9 -9
- data/lib/cucumber/ast/visitor.rb +12 -25
- data/lib/cucumber/cli/configuration.rb +4 -4
- data/lib/cucumber/cli/main.rb +10 -3
- data/lib/cucumber/core_ext/instance_exec.rb +17 -4
- data/lib/cucumber/formatter/ansicolor.rb +1 -1
- data/lib/cucumber/formatter/console.rb +2 -1
- data/lib/cucumber/formatter/html.rb +21 -7
- data/lib/cucumber/formatter/pretty.rb +27 -20
- data/lib/cucumber/formatter/usage.rb +16 -0
- data/lib/cucumber/languages.yml +23 -5
- data/lib/cucumber/parser/feature.rb +231 -114
- data/lib/cucumber/parser/feature.tt +120 -25
- data/lib/cucumber/parser/table.rb +37 -25
- data/lib/cucumber/parser/table.tt +15 -3
- data/lib/cucumber/parser/treetop_ext.rb +48 -9
- data/lib/cucumber/rake/task.rb +29 -6
- data/lib/cucumber/step_definition.rb +4 -2
- data/lib/cucumber/step_mother.rb +143 -26
- data/lib/cucumber/version.rb +2 -2
- data/rails_generators/cucumber/templates/paths.rb +13 -4
- data/rails_generators/cucumber/templates/webrat_steps.rb +16 -0
- data/{specs → spec}/cucumber/ast/background_spec.rb +1 -0
- data/{specs → spec}/cucumber/ast/feature_factory.rb +1 -1
- data/{specs → spec}/cucumber/ast/feature_spec.rb +2 -2
- data/{specs → spec}/cucumber/ast/py_string_spec.rb +0 -0
- data/{specs → spec}/cucumber/ast/scenario_outline_spec.rb +0 -0
- data/{specs → spec}/cucumber/ast/scenario_spec.rb +0 -27
- data/{specs → spec}/cucumber/ast/step_collection_spec.rb +0 -0
- data/{specs → spec}/cucumber/ast/step_spec.rb +0 -0
- data/{specs → spec}/cucumber/ast/table_spec.rb +2 -2
- data/{specs → spec}/cucumber/broadcaster_spec.rb +0 -0
- data/{specs → spec}/cucumber/cli/configuration_spec.rb +0 -0
- data/{specs → spec}/cucumber/cli/main_spec.rb +5 -1
- data/spec/cucumber/core_ext/proc_spec.rb +54 -0
- data/{specs → spec}/cucumber/core_ext/string_spec.rb +0 -0
- data/{specs → spec}/cucumber/formatter/ansicolor_spec.rb +0 -0
- data/{specs → spec}/cucumber/formatter/color_io_spec.rb +0 -0
- data/{specs → spec}/cucumber/formatter/html/cucumber.css +0 -0
- data/{specs → spec}/cucumber/formatter/html/cucumber.js +0 -0
- data/{specs → spec}/cucumber/formatter/html/index.html +0 -0
- data/{specs → spec}/cucumber/formatter/html/jquery-1.3.min.js +0 -0
- data/{specs → spec}/cucumber/formatter/html/jquery.uitableedit.js +0 -0
- data/{specs → spec}/cucumber/formatters/profile_formatter_spec.rb +0 -0
- data/{specs → spec}/cucumber/parser/feature_parser_spec.rb +43 -41
- data/{specs → spec}/cucumber/parser/table_parser_spec.rb +0 -0
- data/{specs → spec}/cucumber/rails/stubs/mini_rails.rb +0 -0
- data/{specs → spec}/cucumber/rails/stubs/test_help.rb +0 -0
- data/{specs → spec}/cucumber/rails/world_spec.rb +0 -0
- data/{specs → spec}/cucumber/sell_cucumbers.feature +0 -0
- data/{specs → spec}/cucumber/step_definition_spec.rb +0 -0
- data/{specs → spec}/cucumber/step_mother_spec.rb +63 -4
- data/{specs → spec}/cucumber/treetop_parser/empty_feature.feature +0 -0
- data/{specs → spec}/cucumber/treetop_parser/empty_scenario.feature +0 -0
- data/{specs → spec}/cucumber/treetop_parser/empty_scenario_outline.feature +0 -0
- data/{specs → spec}/cucumber/treetop_parser/fit_scenario.feature +0 -0
- data/{specs → spec}/cucumber/treetop_parser/given_scenario.feature +0 -0
- data/{specs → spec}/cucumber/treetop_parser/invalid_scenario_outlines.feature +0 -0
- data/{specs → spec}/cucumber/treetop_parser/multiline_steps.feature +0 -0
- data/{specs → spec}/cucumber/treetop_parser/multiple_tables.feature +0 -0
- data/{specs → spec}/cucumber/treetop_parser/scenario_outline.feature +0 -0
- data/{specs → spec}/cucumber/treetop_parser/spaces.feature +0 -0
- data/{specs → spec}/cucumber/treetop_parser/test_dos.feature +0 -0
- data/{specs → spec}/cucumber/treetop_parser/with_comments.feature +0 -0
- data/{specs → spec}/cucumber/treetop_parser/with_tags.feature +0 -0
- data/{specs → spec}/cucumber/world/pending_spec.rb +0 -0
- data/{specs → spec}/spec.opts +0 -0
- data/{specs → spec}/spec_helper.rb +2 -11
- metadata +72 -51
- data/examples/tickets/cucumber.yml +0 -3
- data/lib/cucumber/parser/basic.rb +0 -0
- data/specs/cucumber/ast/tags_spec.rb +0 -19
- data/specs/cucumber/core_ext/proc_spec.rb +0 -37
data/History.txt
CHANGED
@@ -1,3 +1,58 @@
|
|
1
|
+
== 0.3.0 (In Git)
|
2
|
+
|
3
|
+
This release has some minor changes to the APIs, but big enough that a new major release is in order.
|
4
|
+
The biggest change is the new semantics of the #World method. Previously you would call this method
|
5
|
+
several times, passing a Proc and extending the world object of the previous one with a Ruby module.
|
6
|
+
The problem was that there was no nice way to ensure the order in which these procs were called, which
|
7
|
+
led to some unexpected situations. In this release you can only register a single World proc. If you
|
8
|
+
want to extend a world with certain modules, you simply call the #World method with the module(s)
|
9
|
+
you wish to extend the World with. The Sinatra example illustrates how to do this. Also check out
|
10
|
+
the RDoc for Cucumber::StepMother#World.
|
11
|
+
|
12
|
+
The Visitor API (which is used for formatters) has also changed slightly. However, we have tried to
|
13
|
+
do this in a backwards compatible way, so if you have custom formatters for Cucumber 0.2 they should
|
14
|
+
still work.
|
15
|
+
|
16
|
+
One of the most significant new features is Tagged Hooks: http://wiki.github.com/aslakhellesoy/cucumber/hooks
|
17
|
+
This lets you associate Before and After blocks with specific scenarios.
|
18
|
+
|
19
|
+
We are also deprecating the step_list, step_pattern, feature_list, and feature_pattern accessors on
|
20
|
+
Cucumber::Rake::Task. These accessors will be completely removed in version 0.4. For complex settings
|
21
|
+
please rely on cucumber profiles in your rake tasks:
|
22
|
+
http://wiki.github.com/aslakhellesoy/cucumber/using-rake#profiles
|
23
|
+
|
24
|
+
=== New features
|
25
|
+
* Use Hooks with @tags (#229 Aslak Hellesøy)
|
26
|
+
* Rake task supports cucumber.yml profiles (#187 Ben Mabey)
|
27
|
+
* Field value steps for Webrat (Jack Chen)
|
28
|
+
* Added translation for Bulgarian (Krasimir Angelov)
|
29
|
+
* Updated translation for Polish (#273 Grzegorz Marszałek)
|
30
|
+
* Only a single World proc can be registered. World extension now happens by calling #World with ruby modules.
|
31
|
+
* Portuguese uses Funcionalidade in stead of Característica and accented words are aliased with unaccented ones (Alexandre da Silva and Felipe Coury).
|
32
|
+
* The usage formatter also prints unused step definitions (Aslak Hellesøy)
|
33
|
+
* Better exception if a World proc returns nil. (Aslak Hellesøy)
|
34
|
+
* Allow Step Definitions to use |*varargs|, but only on Ruby 1.9. (Aslak Hellesøy)
|
35
|
+
* Snippets for steps that use Step Tables or PyStrings include block param and object type hint comment (#247 Joseph Wilk)
|
36
|
+
* Support description string for Backgrounds (#271 Joseph Wilk)
|
37
|
+
|
38
|
+
=== Bugfixes
|
39
|
+
* After methods not being executed when Background fails (#288 Luismi Cavallé)
|
40
|
+
* Fixed dependency on internal files in rspec breaks cucumber w/ rspec-1.2.4 (#291 Aslak Hellesøy)
|
41
|
+
* Fix color use when using autotest on Linux. (Hans de Graaff)
|
42
|
+
* Fixed incorrect calculation of pystring indentation (#279 Eugene Naydanov)
|
43
|
+
* Fixed --format html leads to an error (#252 Aslak Hellesøy)
|
44
|
+
* Fixed Background runs twice (#255 Aslak Hellesøy)
|
45
|
+
* Fixed Background Transactions and :xx (#270 Aslak Hellesøy)
|
46
|
+
* Fixed Autospec failing with cucumber 0.2 (#254 Aslak Hellesøy)
|
47
|
+
* Sibling file detecting not working (#278 Aslak Hellesøy)
|
48
|
+
|
49
|
+
=== Removed/changed features
|
50
|
+
* The visitor API has changed slightly:
|
51
|
+
** #visit_step_name, #visit_multiline_arg and #visit_exception are no longer official API methods.
|
52
|
+
** #visit_step_result replaces those 3 methods.
|
53
|
+
** Table and PyString no longer hold status information. Each visitor subclass should store state in @state if needed.
|
54
|
+
** #visit_py_string no longer takes a status argument.
|
55
|
+
|
1
56
|
== 0.2.3 2009-03-30
|
2
57
|
|
3
58
|
This release sports 4 updated languages, slightly better help with snippets if you "quote" arguments
|
@@ -16,7 +71,7 @@ in your steps. Windows/JRuby users can enjoy colours and you get some more sugar
|
|
16
71
|
|
17
72
|
=== Bugfixes
|
18
73
|
* Fixed step name after step keyword without space (#265 Aslak Hellesøy)
|
19
|
-
* Backtrace is back in HTML reports
|
74
|
+
* Backtrace is back in HTML reports (Aslak Hellesøy)
|
20
75
|
|
21
76
|
== 0.2.2 2009-03-25
|
22
77
|
|
data/Manifest.txt
CHANGED
@@ -21,6 +21,14 @@ examples/i18n/ar/Rakefile
|
|
21
21
|
examples/i18n/ar/features/addition.feature
|
22
22
|
examples/i18n/ar/features/step_definitons/calculator_steps.rb
|
23
23
|
examples/i18n/ar/lib/calculator.rb
|
24
|
+
examples/i18n/bg/Rakefile
|
25
|
+
examples/i18n/bg/features/addition.feature
|
26
|
+
examples/i18n/bg/features/consecutive_calculations.feature
|
27
|
+
examples/i18n/bg/features/division.feature
|
28
|
+
examples/i18n/bg/features/step_definitons/calculator_steps.rb
|
29
|
+
examples/i18n/bg/features/support/env.rb
|
30
|
+
examples/i18n/bg/features/support/world.rb
|
31
|
+
examples/i18n/bg/lib/calculator.rb
|
24
32
|
examples/i18n/da/Rakefile
|
25
33
|
examples/i18n/da/features/step_definitons/kalkulator_steps.rb
|
26
34
|
examples/i18n/da/features/summering.feature
|
@@ -108,6 +116,11 @@ examples/i18n/se/Rakefile
|
|
108
116
|
examples/i18n/se/features/step_definitons/kalkulator_steps.rb
|
109
117
|
examples/i18n/se/features/summering.feature
|
110
118
|
examples/i18n/se/lib/kalkulator.rb
|
119
|
+
examples/i18n/sk/Rakefile
|
120
|
+
examples/i18n/sk/features/addition.feature
|
121
|
+
examples/i18n/sk/features/division.feature
|
122
|
+
examples/i18n/sk/features/step_definitons/calculator_steps.rb
|
123
|
+
examples/i18n/sk/lib/calculator.rb
|
111
124
|
examples/i18n/zh-CN/Rakefile
|
112
125
|
examples/i18n/zh-CN/features/addition.feature
|
113
126
|
examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb
|
@@ -135,6 +148,7 @@ examples/selenium_webrat/features/step_definitons/search_steps.rb
|
|
135
148
|
examples/selenium_webrat/features/support/env.rb
|
136
149
|
examples/self_test/README.textile
|
137
150
|
examples/self_test/Rakefile
|
151
|
+
examples/self_test/features/background/background_with_name.feature
|
138
152
|
examples/self_test/features/background/failing_background.feature
|
139
153
|
examples/self_test/features/background/failing_background_after_success.feature
|
140
154
|
examples/self_test/features/background/multiline_args_background.feature
|
@@ -151,6 +165,7 @@ examples/self_test/features/step_definitions/sample_steps.rb
|
|
151
165
|
examples/self_test/features/support/env.rb
|
152
166
|
examples/self_test/features/support/tag_count_formatter.rb
|
153
167
|
examples/self_test/features/tons_of_cukes.feature
|
168
|
+
examples/self_test/features/undefined_multiline_args.feature
|
154
169
|
examples/sinatra/Rakefile
|
155
170
|
examples/sinatra/app.rb
|
156
171
|
examples/sinatra/features/add.feature
|
@@ -162,16 +177,22 @@ examples/test_unit/Rakefile
|
|
162
177
|
examples/test_unit/features/step_definitions/test_unit_steps.rb
|
163
178
|
examples/test_unit/features/test_unit.feature
|
164
179
|
examples/tickets/Rakefile
|
165
|
-
examples/tickets/cucumber.yml
|
166
180
|
examples/tickets/features/172.feature
|
167
181
|
examples/tickets/features/177/1.feature
|
168
182
|
examples/tickets/features/177/2.feature
|
169
183
|
examples/tickets/features/177/3.feature
|
170
184
|
examples/tickets/features/180.feature
|
185
|
+
examples/tickets/features/229/tagged_hooks.feature
|
186
|
+
examples/tickets/features/229/tagged_hooks.rb
|
171
187
|
examples/tickets/features/236.feature
|
172
188
|
examples/tickets/features/241.feature
|
173
189
|
examples/tickets/features/246.feature
|
174
190
|
examples/tickets/features/248.feature
|
191
|
+
examples/tickets/features/270/back.feature
|
192
|
+
examples/tickets/features/270/back.steps.rb
|
193
|
+
examples/tickets/features/279/py_string_indent.feature
|
194
|
+
examples/tickets/features/279/py_string_indent.steps.rb
|
195
|
+
examples/tickets/features/279/wrong.feature_
|
175
196
|
examples/tickets/features/lib/eatting_machine.rb
|
176
197
|
examples/tickets/features/lib/pantry.rb
|
177
198
|
examples/tickets/features/scenario_outline.feature
|
@@ -190,7 +211,9 @@ features/cucumber_cli.feature
|
|
190
211
|
features/cucumber_cli_diff_disabled.feature
|
191
212
|
features/cucumber_cli_outlines.feature
|
192
213
|
features/custom_formatter.feature
|
214
|
+
features/rake_task.feature
|
193
215
|
features/report_called_undefined_steps.feature
|
216
|
+
features/snippet.feature
|
194
217
|
features/step_definitions/cucumber_steps.rb
|
195
218
|
features/step_definitions/extra_steps.rb
|
196
219
|
features/support/env.rb
|
@@ -251,7 +274,6 @@ lib/cucumber/formatter/usage.rb
|
|
251
274
|
lib/cucumber/formatters/unicode.rb
|
252
275
|
lib/cucumber/languages.yml
|
253
276
|
lib/cucumber/parser.rb
|
254
|
-
lib/cucumber/parser/basic.rb
|
255
277
|
lib/cucumber/parser/feature.rb
|
256
278
|
lib/cucumber/parser/feature.tt
|
257
279
|
lib/cucumber/parser/i18n.tt
|
@@ -278,50 +300,49 @@ rails_generators/feature/USAGE
|
|
278
300
|
rails_generators/feature/feature_generator.rb
|
279
301
|
rails_generators/feature/templates/feature.erb
|
280
302
|
rails_generators/feature/templates/steps.erb
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
specs/spec_helper.rb
|
303
|
+
spec/cucumber/ast/background_spec.rb
|
304
|
+
spec/cucumber/ast/feature_factory.rb
|
305
|
+
spec/cucumber/ast/feature_spec.rb
|
306
|
+
spec/cucumber/ast/py_string_spec.rb
|
307
|
+
spec/cucumber/ast/scenario_outline_spec.rb
|
308
|
+
spec/cucumber/ast/scenario_spec.rb
|
309
|
+
spec/cucumber/ast/step_collection_spec.rb
|
310
|
+
spec/cucumber/ast/step_spec.rb
|
311
|
+
spec/cucumber/ast/table_spec.rb
|
312
|
+
spec/cucumber/broadcaster_spec.rb
|
313
|
+
spec/cucumber/cli/configuration_spec.rb
|
314
|
+
spec/cucumber/cli/main_spec.rb
|
315
|
+
spec/cucumber/core_ext/proc_spec.rb
|
316
|
+
spec/cucumber/core_ext/string_spec.rb
|
317
|
+
spec/cucumber/formatter/ansicolor_spec.rb
|
318
|
+
spec/cucumber/formatter/color_io_spec.rb
|
319
|
+
spec/cucumber/formatter/html/cucumber.css
|
320
|
+
spec/cucumber/formatter/html/cucumber.js
|
321
|
+
spec/cucumber/formatter/html/index.html
|
322
|
+
spec/cucumber/formatter/html/jquery-1.3.min.js
|
323
|
+
spec/cucumber/formatter/html/jquery.uitableedit.js
|
324
|
+
spec/cucumber/formatters/profile_formatter_spec.rb
|
325
|
+
spec/cucumber/parser/feature_parser_spec.rb
|
326
|
+
spec/cucumber/parser/table_parser_spec.rb
|
327
|
+
spec/cucumber/rails/stubs/mini_rails.rb
|
328
|
+
spec/cucumber/rails/stubs/test_help.rb
|
329
|
+
spec/cucumber/rails/world_spec.rb
|
330
|
+
spec/cucumber/sell_cucumbers.feature
|
331
|
+
spec/cucumber/step_definition_spec.rb
|
332
|
+
spec/cucumber/step_mother_spec.rb
|
333
|
+
spec/cucumber/treetop_parser/empty_feature.feature
|
334
|
+
spec/cucumber/treetop_parser/empty_scenario.feature
|
335
|
+
spec/cucumber/treetop_parser/empty_scenario_outline.feature
|
336
|
+
spec/cucumber/treetop_parser/fit_scenario.feature
|
337
|
+
spec/cucumber/treetop_parser/given_scenario.feature
|
338
|
+
spec/cucumber/treetop_parser/invalid_scenario_outlines.feature
|
339
|
+
spec/cucumber/treetop_parser/multiline_steps.feature
|
340
|
+
spec/cucumber/treetop_parser/multiple_tables.feature
|
341
|
+
spec/cucumber/treetop_parser/scenario_outline.feature
|
342
|
+
spec/cucumber/treetop_parser/spaces.feature
|
343
|
+
spec/cucumber/treetop_parser/test_dos.feature
|
344
|
+
spec/cucumber/treetop_parser/with_comments.feature
|
345
|
+
spec/cucumber/treetop_parser/with_tags.feature
|
346
|
+
spec/cucumber/world/pending_spec.rb
|
347
|
+
spec/spec.opts
|
348
|
+
spec/spec_helper.rb
|
data/config/hoe.rb
CHANGED
@@ -53,7 +53,7 @@ $hoe = Hoe.new(GEM_NAME, VERS) do |p|
|
|
53
53
|
p.summary = DESCRIPTION
|
54
54
|
p.url = HOMEPATH
|
55
55
|
p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
|
56
|
-
p.clean_globs |= ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store', '**/*.class', '**/*.jar'] #An array of file patterns to delete on clean.
|
56
|
+
p.clean_globs |= ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store', '**/*.class', '**/*.jar', '**/tmp'] #An array of file patterns to delete on clean.
|
57
57
|
|
58
58
|
# == Optional
|
59
59
|
p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
|
data/cucumber.yml
CHANGED
@@ -1 +1 @@
|
|
1
|
-
default: --format progress features
|
1
|
+
default: --format progress features --tags ~@pending
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Функционалност: Събиране на числа
|
2
|
+
За да не го правят наум
|
3
|
+
Потребителите
|
4
|
+
Трябва да могат да събират числа с калкулатора
|
5
|
+
|
6
|
+
Сценарий: Събиране на две цели числа
|
7
|
+
Дадено е че съм въвел 50
|
8
|
+
И съм въвел 70
|
9
|
+
Когато натисна "+"
|
10
|
+
То резултата трябва да е равен на 120
|
11
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Функционалост: Последователни изчисления
|
2
|
+
За да не го правят наум
|
3
|
+
Потребителите
|
4
|
+
Трябва да могат да извършват последователни изчисления с калкулатора
|
5
|
+
|
6
|
+
Предистория:
|
7
|
+
Дадено е че съм събрал 3 и 5
|
8
|
+
|
9
|
+
Сценарий: събиране с резултата от последната операция
|
10
|
+
Когато въведа 4
|
11
|
+
И натисна "+"
|
12
|
+
То резултата трябва да е равен на 12
|
13
|
+
|
14
|
+
Сценарий: делене с резултата от последната операция
|
15
|
+
Когато въведа 2
|
16
|
+
И натисна "/"
|
17
|
+
То резултата трябва да е равен на 4
|
18
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Фунцкционалност: Делене на числа
|
2
|
+
За да не го правят наум
|
3
|
+
Потребителите
|
4
|
+
Трябва да могат да разделят числа с калкулатора
|
5
|
+
|
6
|
+
Рамка на сценарий: Делене на цели числа
|
7
|
+
Дадено е че съм въвел <делимо>
|
8
|
+
И е че съм въвел <делител>
|
9
|
+
Когато натисна "/"
|
10
|
+
То резултата трябва да е равен на <частно>
|
11
|
+
|
12
|
+
Примери:
|
13
|
+
| делимо | делител | частно |
|
14
|
+
| 100 | 2 | 50 |
|
15
|
+
| 28 | 7 | 4 |
|
16
|
+
| 0 | 5 | 0 |
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
Дадено /въвел (\d+)/ do |x|
|
4
|
+
calc.push x.to_i
|
5
|
+
end
|
6
|
+
|
7
|
+
Когато /^въведа (\d+)/ do |x|
|
8
|
+
calc.push x.to_i
|
9
|
+
end
|
10
|
+
|
11
|
+
Когато /натисна "(.*)"/ do |op|
|
12
|
+
calc.send op
|
13
|
+
end
|
14
|
+
|
15
|
+
То /резултата трябва да е равен на (\d+)/ do |result|
|
16
|
+
calc.result.should == result.to_f
|
17
|
+
end
|
18
|
+
|
19
|
+
Дадено /събрал (\d+) и (\d+)/ do |x, y|
|
20
|
+
Дадено %{въвел #{x}}
|
21
|
+
Дадено %{въвел #{y}}
|
22
|
+
Дадено %{натисна "+"}
|
23
|
+
end
|
24
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
class Calculator
|
4
|
+
def initialize
|
5
|
+
@stack = []
|
6
|
+
end
|
7
|
+
|
8
|
+
def push(arg)
|
9
|
+
@stack.push arg
|
10
|
+
end
|
11
|
+
|
12
|
+
def result
|
13
|
+
@stack.last
|
14
|
+
end
|
15
|
+
|
16
|
+
def +
|
17
|
+
@stack.push @stack.pop + @stack.pop
|
18
|
+
end
|
19
|
+
|
20
|
+
def /
|
21
|
+
divisor, dividend = [@stack.pop, @stack.pop] # Hm, @stack.pop(2) doesn't work
|
22
|
+
@stack.push dividend / divisor
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Požiadavka: Sčítavanie
|
2
|
+
Aby som sa vyhol hlúpym chybám
|
3
|
+
Ako matematický idiot
|
4
|
+
Chcem vedieť ako sa sčítavajú dve čísla
|
5
|
+
|
6
|
+
Náčrt Scenáru: Sčítanie dvoch čísel
|
7
|
+
Pokiaľ Zadám číslo <vstup_1> do kalkulačky
|
8
|
+
A Zadám číslo <vstup_2> do kalkulačky
|
9
|
+
Keď Stlačím tlačidlo <tlačidlo>
|
10
|
+
Tak Výsledok by mal byť <výstup>
|
11
|
+
|
12
|
+
Príklady:
|
13
|
+
| vstup_1 | vstup_2 | tlačidlo | výstup |
|
14
|
+
| 20 | 30 | add | 50 |
|
15
|
+
| 2 | 5 | add | 7 |
|
16
|
+
| 0 | 40 | add | 40 |
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec/expectations'
|
3
|
+
$:.unshift(File.dirname(__FILE__) + '/../../lib') # This line is not needed in your own project
|
4
|
+
require 'cucumber/formatter/unicode'
|
5
|
+
require 'calculator'
|
6
|
+
|
7
|
+
Before do
|
8
|
+
@calc = Calculator.new
|
9
|
+
end
|
10
|
+
|
11
|
+
After do
|
12
|
+
end
|
13
|
+
|
14
|
+
Given /Zadám číslo (\d+) do kalkulačky/ do |n|
|
15
|
+
@calc.push n.to_i
|
16
|
+
end
|
17
|
+
|
18
|
+
When /Stlačím tlačidlo (\w+)/ do |op|
|
19
|
+
@result = @calc.send op
|
20
|
+
end
|
21
|
+
|
22
|
+
Then /Výsledok by mal byť (.*)/ do |result|
|
23
|
+
@result.should == result.to_f
|
24
|
+
end
|