cucumber 0.1.10 → 0.2.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.
- data/History.txt +223 -5
- data/License.txt +1 -1
- data/Manifest.txt +174 -85
- data/README.txt +2 -39
- data/Rakefile +1 -2
- data/bin/cucumber +2 -2
- data/config/hoe.rb +9 -3
- data/examples/cs/README.textile +1 -22
- data/examples/cs/Rakefile +1 -1
- data/examples/cs/compile.bat +1 -0
- data/examples/cs/features/addition.feature +16 -0
- data/examples/cs/features/step_definitons/calculator_steps.rb +19 -0
- data/examples/cs/src/demo/Calculator.cs +20 -0
- data/examples/i18n/README.textile +1 -1
- data/examples/i18n/Rakefile +20 -4
- data/examples/i18n/ar/features/addition.feature +10 -11
- data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +4 -12
- data/examples/i18n/da/features/step_definitons/kalkulator_steps.rb +4 -2
- data/examples/i18n/de/features/addition.feature +10 -11
- data/examples/i18n/de/features/division.feature +0 -1
- data/examples/i18n/de/features/step_definitons/calculator_steps.rb +5 -11
- data/examples/i18n/en/features/addition.feature +10 -11
- data/examples/i18n/en/features/division.feature +0 -1
- data/examples/i18n/en/features/step_definitons/calculator_steps.rb +5 -12
- data/examples/i18n/en-lol/Rakefile +6 -0
- data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +16 -0
- data/examples/i18n/en-lol/features/stuffing.feature +8 -0
- data/examples/i18n/en-lol/features/support/env.rb +8 -0
- data/examples/i18n/en-lol/lib/basket.rb +12 -0
- data/examples/i18n/en-lol/lib/belly.rb +11 -0
- data/examples/i18n/es/features/adicion.feature +11 -12
- data/examples/i18n/es/features/step_definitons/calculador_steps.rb +10 -11
- data/examples/i18n/es/lib/calculador.rb +4 -1
- data/examples/i18n/et/features/jagamine.feature +9 -0
- data/examples/i18n/et/features/liitmine.feature +10 -11
- data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +7 -9
- data/examples/i18n/et/lib/kalkulaator.rb +5 -1
- data/examples/i18n/fi/Rakefile +6 -0
- data/examples/i18n/fi/features/jakolasku.feature +9 -0
- data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +24 -0
- data/examples/i18n/fi/features/yhteenlasku.feature +16 -0
- data/examples/i18n/fi/lib/laskin.rb +14 -0
- data/examples/i18n/fr/features/addition.feature +16 -12
- data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +14 -11
- data/examples/i18n/fr/lib/calculatrice.rb +1 -1
- data/examples/i18n/id/features/addition.feature +10 -11
- data/examples/i18n/id/features/division.feature +0 -1
- data/examples/i18n/id/features/step_definitons/calculator_steps.rb +5 -12
- data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +4 -2
- data/examples/i18n/ja/features/addition.feature +10 -11
- data/examples/i18n/ja/features/division.feature +2 -3
- data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +6 -12
- data/examples/i18n/ko/Rakefile +6 -0
- data/examples/i18n/ko/features/addition.feature +16 -0
- data/examples/i18n/ko/features/division.feature +10 -0
- data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/ko/lib/calculator.rb +14 -0
- data/examples/i18n/lt/features/addition.feature +11 -11
- data/examples/i18n/lt/features/division.feature +0 -1
- data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +5 -12
- data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +4 -9
- data/examples/i18n/no/features/summering.feature +1 -0
- data/examples/i18n/no/features/support/env.rb +6 -0
- data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +4 -2
- data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +4 -2
- data/examples/i18n/ru/Rakefile +6 -0
- data/examples/i18n/ru/features/addition.feature +10 -0
- data/examples/i18n/ru/features/consecutive_calculations.feature +16 -0
- data/examples/i18n/ru/features/division.feature +15 -0
- data/examples/i18n/ru/features/step_definitons/calculator_steps.rb +19 -0
- data/examples/i18n/ru/features/support/env.rb +6 -0
- data/examples/i18n/ru/features/support/world.rb +7 -0
- data/examples/i18n/ru/lib/calculator.rb +24 -0
- data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +4 -2
- data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +5 -3
- data/examples/i18n/zh-TW/Rakefile +6 -0
- data/examples/i18n/zh-TW/features/addition.feature +16 -0
- data/examples/i18n/zh-TW/features/division.feature +10 -0
- data/examples/i18n/zh-TW/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/zh-TW/lib/calculator.rb +14 -0
- data/examples/java/features/step_definitons/hello_steps.rb +1 -1
- data/examples/java/features/step_definitons/tree_steps.rb +1 -1
- data/examples/jbehave/README.textile +20 -0
- data/examples/jbehave/features/support/env.rb +7 -0
- data/examples/jbehave/features/trading.feature +28 -0
- data/examples/jbehave/pom.xml +53 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/converters/TraderConverter.java +32 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Stock.java +42 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Trader.java +29 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/persistence/TraderPersister.java +22 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/scenarios/TraderSteps.java +70 -0
- data/examples/selenium/features/search.feature +1 -1
- data/examples/selenium/features/step_definitons/search_steps.rb +13 -0
- data/examples/selenium/features/support/env.rb +19 -0
- data/examples/selenium_webrat/features/search.feature +9 -0
- data/examples/selenium_webrat/features/step_definitons/search_steps.rb +13 -0
- data/examples/selenium_webrat/features/support/env.rb +41 -0
- data/examples/self_test/README.textile +6 -0
- data/examples/self_test/Rakefile +6 -0
- data/examples/self_test/features/background/failing_background.feature +11 -0
- data/examples/self_test/features/background/failing_background_after_success.feature +11 -0
- data/examples/self_test/features/background/multiline_args_background.feature +32 -0
- data/examples/self_test/features/background/passing_background.feature +10 -0
- data/examples/self_test/features/background/pending_background.feature +10 -0
- data/examples/self_test/features/background/scenario_outline_failing_background.feature +16 -0
- data/examples/self_test/features/background/scenario_outline_passing_background.feature +16 -0
- data/examples/self_test/features/call_undefined_step_from_step_def.feature +7 -0
- data/examples/self_test/features/failing_expectation.feature +4 -0
- data/examples/self_test/features/lots_of_undefined.feature +8 -0
- data/examples/self_test/features/outline_sample.feature +15 -0
- data/examples/self_test/features/sample.feature +19 -0
- data/examples/self_test/features/step_definitions/sample_steps.rb +64 -0
- data/examples/self_test/features/support/env.rb +1 -0
- data/examples/self_test/features/support/tag_count_formatter.rb +25 -0
- data/examples/sinatra/Rakefile +6 -0
- data/examples/sinatra/app.rb +14 -0
- data/examples/sinatra/features/add.feature +11 -0
- data/examples/sinatra/features/step_definitions/add_steps.rb +15 -0
- data/examples/sinatra/features/support/env.rb +20 -0
- data/examples/sinatra/views/add.erb +5 -0
- data/examples/sinatra/views/layout.erb +8 -0
- data/examples/tickets/Rakefile +13 -8
- data/examples/tickets/cucumber.yml +2 -1
- data/examples/tickets/features/172.feature +28 -0
- data/examples/tickets/features/177/1.feature +29 -0
- data/examples/tickets/features/177/2.feature +21 -0
- data/examples/tickets/features/177/3.feature +18 -0
- data/examples/tickets/features/180.feature +7 -0
- data/examples/tickets/features/236.feature +13 -0
- data/examples/tickets/features/241.feature +13 -0
- data/examples/tickets/features/lib/eatting_machine.rb +18 -0
- data/examples/tickets/features/lib/pantry.rb +20 -0
- data/examples/tickets/features/scenario_outline.feature +95 -0
- data/examples/tickets/features/step_definitons/scenario_outline_steps.rb +42 -0
- data/examples/tickets/features/step_definitons/tickets_steps.rb +46 -5
- data/examples/tickets/features/tickets.feature +5 -1
- data/examples/watir/README.textile +16 -0
- data/examples/watir/features/step_definitons/search_steps.rb +24 -0
- data/examples/watir/features/support/env.rb +32 -0
- data/features/background.feature +221 -0
- data/features/cucumber_cli.feature +389 -0
- data/features/cucumber_cli_diff_disabled.feature +45 -0
- data/features/cucumber_cli_outlines.feature +81 -0
- data/features/custom_formatter.feature +11 -0
- data/features/report_called_undefined_steps.feature +34 -0
- data/features/step_definitions/cucumber_steps.rb +30 -0
- data/features/step_definitions/extra_steps.rb +2 -0
- data/features/support/env.rb +8 -0
- data/gem_tasks/deployment.rake +0 -23
- data/gem_tasks/features.rake +1 -1
- data/gem_tasks/fix_cr_lf.rake +1 -1
- data/gem_tasks/flog.rake +1 -1
- data/gem_tasks/gemspec.rake +4 -0
- data/gem_tasks/jar.rake +67 -0
- data/gem_tasks/rspec.rake +31 -15
- data/gem_tasks/yard.rake +8 -0
- data/lib/autotest/cucumber_mixin.rb +41 -25
- data/lib/cucumber/ast/background.rb +50 -0
- data/lib/cucumber/ast/comment.rb +26 -0
- data/lib/cucumber/ast/examples.rb +38 -0
- data/lib/cucumber/ast/feature.rb +62 -0
- data/lib/cucumber/ast/feature_element.rb +46 -0
- data/lib/cucumber/ast/features.rb +20 -0
- data/lib/cucumber/ast/outline_table.rb +81 -0
- data/lib/cucumber/ast/py_string.rb +58 -0
- data/lib/cucumber/ast/scenario.rb +64 -0
- data/lib/cucumber/ast/scenario_outline.rb +90 -0
- data/lib/cucumber/ast/step.rb +122 -0
- data/lib/cucumber/ast/step_collection.rb +66 -0
- data/lib/cucumber/ast/step_invocation.rb +110 -0
- data/lib/cucumber/ast/table.rb +318 -0
- data/lib/cucumber/ast/tags.rb +33 -0
- data/lib/cucumber/ast/visitor.rb +125 -0
- data/lib/cucumber/ast.rb +29 -0
- data/lib/cucumber/broadcaster.rb +2 -9
- data/lib/cucumber/cli/configuration.rb +364 -0
- data/lib/cucumber/cli/language_help_formatter.rb +59 -0
- data/lib/cucumber/cli/main.rb +109 -0
- data/lib/cucumber/core_ext/exception.rb +53 -0
- data/lib/cucumber/core_ext/instance_exec.rb +54 -0
- data/lib/cucumber/core_ext/proc.rb +29 -65
- data/lib/cucumber/core_ext/string.rb +26 -0
- data/lib/cucumber/formatter/ansicolor.rb +102 -0
- data/lib/cucumber/formatter/color_io.rb +23 -0
- data/lib/cucumber/formatter/console.rb +109 -0
- data/lib/cucumber/formatter/cucumber.css +55 -0
- data/lib/cucumber/formatter/cucumber.sass +49 -0
- data/lib/cucumber/formatter/html.rb +133 -0
- data/lib/cucumber/formatter/pretty.rb +179 -0
- data/lib/cucumber/formatter/profile.rb +77 -0
- data/lib/cucumber/formatter/progress.rb +60 -0
- data/lib/cucumber/formatter/rerun.rb +35 -0
- data/lib/cucumber/formatter/unicode.rb +35 -0
- data/lib/cucumber/formatter.rb +1 -0
- data/lib/cucumber/formatters/unicode.rb +2 -0
- data/lib/cucumber/jbehave.rb +97 -0
- data/lib/cucumber/languages.yml +214 -72
- data/lib/cucumber/parser/basic.rb +0 -0
- data/lib/cucumber/parser/feature.rb +1487 -0
- data/lib/cucumber/parser/feature.tt +193 -0
- data/lib/cucumber/parser/i18n.tt +31 -0
- data/lib/cucumber/parser/table.rb +402 -0
- data/lib/cucumber/parser/table.tt +59 -0
- data/lib/cucumber/parser/treetop_ext.rb +75 -0
- data/lib/cucumber/parser.rb +43 -0
- data/lib/cucumber/platform.rb +13 -8
- data/lib/cucumber/rails/rspec.rb +6 -10
- data/lib/cucumber/rails/world.rb +8 -8
- data/lib/cucumber/rake/task.rb +46 -9
- data/lib/cucumber/step_definition.rb +103 -0
- data/lib/cucumber/step_match.rb +49 -0
- data/lib/cucumber/step_mother.rb +184 -65
- data/lib/cucumber/version.rb +4 -3
- data/lib/cucumber/world.rb +53 -0
- data/lib/cucumber.rb +45 -21
- data/rails_generators/cucumber/cucumber_generator.rb +23 -3
- data/rails_generators/cucumber/templates/cucumber +2 -1
- data/rails_generators/cucumber/templates/cucumber.rake +13 -5
- data/rails_generators/cucumber/templates/env.rb +11 -2
- data/rails_generators/cucumber/templates/paths.rb +19 -0
- data/rails_generators/cucumber/templates/webrat_steps.rb +60 -40
- data/rails_generators/feature/feature_generator.rb +26 -2
- data/rails_generators/feature/templates/feature.erb +15 -12
- data/rails_generators/feature/templates/steps.erb +14 -16
- data/spec/cucumber/ast/background_spec.rb +49 -0
- data/spec/cucumber/ast/feature_factory.rb +63 -0
- data/spec/cucumber/ast/feature_spec.rb +37 -0
- data/spec/cucumber/ast/py_string_spec.rb +47 -0
- data/spec/cucumber/ast/scenario_outline_spec.rb +67 -0
- data/spec/cucumber/ast/scenario_spec.rb +65 -0
- data/spec/cucumber/ast/step_collection_spec.rb +8 -0
- data/spec/cucumber/ast/step_spec.rb +66 -0
- data/spec/cucumber/ast/table_spec.rb +149 -0
- data/spec/cucumber/ast/tags_spec.rb +19 -0
- data/spec/cucumber/broadcaster_spec.rb +6 -18
- data/spec/cucumber/cli/configuration_spec.rb +275 -0
- data/spec/cucumber/cli/main_spec.rb +203 -0
- data/spec/cucumber/core_ext/proc_spec.rb +27 -35
- data/spec/cucumber/core_ext/string_spec.rb +8 -0
- data/spec/cucumber/formatter/ansicolor_spec.rb +35 -0
- data/spec/cucumber/formatter/color_io_spec.rb +26 -0
- data/spec/cucumber/formatter/html/cucumber.css +37 -0
- data/spec/cucumber/formatter/html/cucumber.js +13 -0
- data/spec/cucumber/formatter/html/index.html +45 -0
- data/spec/cucumber/formatter/html/jquery-1.3.min.js +19 -0
- data/spec/cucumber/formatter/html/jquery.uitableedit.js +100 -0
- data/spec/cucumber/formatters/profile_formatter_spec.rb +22 -16
- data/spec/cucumber/parser/feature_parser_spec.rb +282 -0
- data/spec/cucumber/parser/table_parser_spec.rb +48 -0
- data/spec/cucumber/rails/stubs/mini_rails.rb +4 -3
- data/spec/cucumber/step_definition_spec.rb +81 -0
- data/spec/cucumber/step_mother_spec.rb +50 -51
- data/spec/cucumber/treetop_parser/empty_feature.feature +1 -1
- data/spec/cucumber/treetop_parser/empty_scenario_outline.feature +3 -0
- data/spec/cucumber/treetop_parser/invalid_scenario_outlines.feature +7 -0
- data/spec/cucumber/treetop_parser/multiple_tables.feature +6 -8
- data/spec/cucumber/treetop_parser/scenario_outline.feature +16 -0
- data/spec/cucumber/treetop_parser/spaces.feature +3 -1
- data/spec/cucumber/treetop_parser/with_comments.feature +1 -1
- data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
- data/spec/cucumber/world/pending_spec.rb +47 -0
- data/spec/spec_helper.rb +4 -3
- metadata +192 -95
- data/TODO.txt +0 -26
- data/examples/calculator_ruby_features/features/addition.rb +0 -23
- data/examples/calculator_ruby_features/features/step_definitons/calculator_steps.rb +0 -43
- data/examples/cs/features/hello.feature +0 -11
- data/examples/cs/features/step_definitons/hello_steps.rb +0 -25
- data/examples/cs/features/step_definitons/tree_steps.rb +0 -14
- data/examples/cs/features/tree.feature +0 -9
- data/examples/cs/src/Hello.cs +0 -18
- data/examples/i18n/ja/README.txt +0 -5
- data/examples/selenium/features/step_definitons/stories_steps.rb +0 -41
- data/examples/watir/features/step_definitons/stories_steps.rb +0 -51
- data/features/see_features.feature +0 -8
- data/features/steps/features_steps.rb +0 -9
- data/gem_tasks/treetop.rake +0 -41
- data/lib/cucumber/cli.rb +0 -279
- data/lib/cucumber/executor.rb +0 -190
- data/lib/cucumber/formatters/ansicolor.rb +0 -109
- data/lib/cucumber/formatters/autotest_formatter.rb +0 -23
- data/lib/cucumber/formatters/cucumber.css +0 -132
- data/lib/cucumber/formatters/cucumber.js +0 -11
- data/lib/cucumber/formatters/html_formatter.rb +0 -128
- data/lib/cucumber/formatters/jquery.js +0 -32
- data/lib/cucumber/formatters/pretty_formatter.rb +0 -234
- data/lib/cucumber/formatters/profile_formatter.rb +0 -92
- data/lib/cucumber/formatters/progress_formatter.rb +0 -58
- data/lib/cucumber/formatters.rb +0 -1
- data/lib/cucumber/model/table.rb +0 -28
- data/lib/cucumber/model.rb +0 -1
- data/lib/cucumber/step_methods.rb +0 -49
- data/lib/cucumber/tree/feature.rb +0 -63
- data/lib/cucumber/tree/features.rb +0 -21
- data/lib/cucumber/tree/given_scenario.rb +0 -13
- data/lib/cucumber/tree/scenario.rb +0 -174
- data/lib/cucumber/tree/step.rb +0 -134
- data/lib/cucumber/tree/table.rb +0 -26
- data/lib/cucumber/tree/top_down_visitor.rb +0 -23
- data/lib/cucumber/tree.rb +0 -18
- data/lib/cucumber/treetop_parser/feature.treetop.erb +0 -206
- data/lib/cucumber/treetop_parser/feature_ar.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_cy.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_da.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_de.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_en-tx.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_en.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_es.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_et.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_fr.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_id.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_it.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_ja.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_lt.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_nl.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_no.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_parser.rb +0 -34
- data/lib/cucumber/treetop_parser/feature_pl.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_pt.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_ro.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_ro2.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_ru.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_se.rb +0 -1591
- data/lib/cucumber/treetop_parser/feature_zh-CN.rb +0 -1591
- data/script/console +0 -10
- data/script/console.cmd +0 -1
- data/script/destroy +0 -14
- data/script/destroy.cmd +0 -1
- data/script/generate +0 -14
- data/script/generate.cmd +0 -1
- data/script/txt2html +0 -74
- data/script/txt2html.cmd +0 -1
- data/setup.rb +0 -1585
- data/spec/cucumber/cli_spec.rb +0 -274
- data/spec/cucumber/executor_spec.rb +0 -298
- data/spec/cucumber/formatters/ansicolor_spec.rb +0 -35
- data/spec/cucumber/formatters/autotest_formatter_spec.rb +0 -26
- data/spec/cucumber/formatters/features.html +0 -269
- data/spec/cucumber/formatters/html_formatter_spec.rb +0 -74
- data/spec/cucumber/formatters/pretty_formatter_spec.rb +0 -204
- data/spec/cucumber/formatters/progress_formatter_spec.rb +0 -65
- data/spec/cucumber/model/table_spec.rb +0 -20
- data/spec/cucumber/tree/feature_spec.rb +0 -43
- data/spec/cucumber/tree/row_scenario_spec.rb +0 -55
- data/spec/cucumber/tree/scenario_spec.rb +0 -76
- data/spec/cucumber/tree/step_spec.rb +0 -50
- data/spec/cucumber/treetop_parser/feature_parser_spec.rb +0 -98
- /data/examples/{calculator_ruby_features → selenium_webrat}/Rakefile +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Ominaisuus: Jakolasku
|
|
2
|
+
Välttyäkseen hölmöiltä virheiltä
|
|
3
|
+
Kassanhoitajan on voitava laskea osamäärä
|
|
4
|
+
|
|
5
|
+
Tapaus: Kokonaislukujen jakolasku
|
|
6
|
+
Oletetaan että olen syöttänyt laskimeen luvun 3
|
|
7
|
+
Ja että olen syöttänyt laskimeen luvun 2
|
|
8
|
+
Kun painan "jaa"
|
|
9
|
+
Niin laskimen ruudulla pitäisi näkyä tulos 1.5
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require 'spec/expectations'
|
|
3
|
+
$:.unshift(File.dirname(__FILE__) + '/../../lib')
|
|
4
|
+
require 'cucumber/formatters/unicode'
|
|
5
|
+
require 'laskin'
|
|
6
|
+
|
|
7
|
+
Before do
|
|
8
|
+
@laskin = Laskin.new
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
After do
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
Given /että olen syöttänyt laskimeen luvun (\d+)/ do |n|
|
|
15
|
+
@laskin.pinoa n.to_i
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
When /painan "(\w+)"/ do |op|
|
|
19
|
+
@tulos = @laskin.send op
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
Then /laskimen ruudulla pitäisi näkyä tulos (.*)/ do |tulos|
|
|
23
|
+
@tulos.should == tulos.to_f
|
|
24
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
Ominaisuus: Yhteenlasku
|
|
2
|
+
Välttyäkseni hölmöiltä virheiltä
|
|
3
|
+
Koska olen laskutaidoton
|
|
4
|
+
Haluan että yhteenlaskut lasketaan puolestani
|
|
5
|
+
|
|
6
|
+
Tapausaihio: Kahden luvun summa
|
|
7
|
+
Oletetaan että olen syöttänyt laskimeen luvun 50
|
|
8
|
+
Ja että olen syöttänyt laskimeen luvun 70
|
|
9
|
+
Kun painan "summaa"
|
|
10
|
+
Niin laskimen ruudulla pitäisi näkyä tulos 120
|
|
11
|
+
|
|
12
|
+
Tapaukset:
|
|
13
|
+
| luku_1 | luku_2 | nappi | tulos |
|
|
14
|
+
| 20 | 30 | summaa | 50 |
|
|
15
|
+
| 2 | 5 | summaa | 7 |
|
|
16
|
+
| 0 | 40 | summaa | 40 |
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
Afin
|
|
3
|
-
|
|
4
|
-
Je
|
|
1
|
+
Fonctionnalité: Addition
|
|
2
|
+
Afin de gagner du temps lors du calcul de la facture
|
|
3
|
+
En tant que commerçant
|
|
4
|
+
Je souhaite pouvoir faire une additionn
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
Soit
|
|
8
|
-
Et que j'
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
Plan du Scénario: Addition de deux nombres
|
|
7
|
+
Soit une calculatrice
|
|
8
|
+
Et que j'entre <a> pour le premier nombre
|
|
9
|
+
Et que je tape sur la touche "+"
|
|
10
|
+
Et que j'entre <b> pour le second nombre
|
|
11
|
+
Lorsque je tape sur la touche "="
|
|
12
|
+
Alors le résultat affiché doit être <somme>
|
|
13
|
+
|
|
14
|
+
Exemples:
|
|
15
|
+
| a | b | somme |
|
|
16
|
+
| 2 | 2 | 4 |
|
|
17
|
+
| 2 | 3 | 5 |
|
|
@@ -1,22 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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/formatters/unicode'
|
|
3
5
|
require 'calculatrice'
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
@calc =
|
|
7
|
+
Soit /^une calculatrice$/ do
|
|
8
|
+
@calc = Calculatrice.new
|
|
7
9
|
end
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
Et /^que j'entre (\d+) pour le (.*) nombre/ do |n, x|
|
|
12
|
+
@calc.push n.to_i
|
|
10
13
|
end
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
@calc.
|
|
15
|
+
Lorsque /^je tape sur la touche "="$/ do
|
|
16
|
+
@expected_result = @calc.additionner
|
|
14
17
|
end
|
|
15
18
|
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
Alors /le résultat affiché doit être (\d*)/ do |result|
|
|
20
|
+
result.to_i.should == @expected_result
|
|
18
21
|
end
|
|
19
22
|
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
Soit /^que je tape sur la touche "\+"$/ do
|
|
24
|
+
# noop
|
|
22
25
|
end
|
|
@@ -3,15 +3,14 @@ Fitur: Addition
|
|
|
3
3
|
Sebagai orang yang gak bisa matematika
|
|
4
4
|
Aku ingin diberi tahu jumlah dua bilangan
|
|
5
5
|
|
|
6
|
-
Skenario: Menjumlahkan dua bilangan
|
|
7
|
-
Dengan aku sudah masukkan
|
|
8
|
-
Dan aku sudah masukkan
|
|
9
|
-
Ketika aku tekan
|
|
10
|
-
Maka hasilnya harus
|
|
11
|
-
Dan class hasilnya harus Fixnum
|
|
6
|
+
Skenario konsep: Menjumlahkan dua bilangan
|
|
7
|
+
Dengan aku sudah masukkan <input_1> ke kalkulator
|
|
8
|
+
Dan aku sudah masukkan <input_2> ke kalkulator
|
|
9
|
+
Ketika aku tekan <button>
|
|
10
|
+
Maka hasilnya harus <output> di layar
|
|
12
11
|
|
|
13
|
-
Contoh
|
|
14
|
-
| input_1 | input_2 | button | output |
|
|
15
|
-
| 20 | 30 | add | 50 |
|
|
16
|
-
| 2 | 5 | add | 7 |
|
|
17
|
-
| 0 | 40 | add | 40 |
|
|
12
|
+
Contoh:
|
|
13
|
+
| input_1 | input_2 | button | output |
|
|
14
|
+
| 20 | 30 | add | 50 |
|
|
15
|
+
| 2 | 5 | add | 7 |
|
|
16
|
+
| 0 | 40 | add | 40 |
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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/formatters/unicode'
|
|
3
5
|
require 'calculator'
|
|
4
6
|
|
|
5
7
|
Before do
|
|
@@ -9,7 +11,7 @@ end
|
|
|
9
11
|
After do
|
|
10
12
|
end
|
|
11
13
|
|
|
12
|
-
Given
|
|
14
|
+
Given /aku sudah masukkan (\d+) ke kalkulator/ do |n|
|
|
13
15
|
@calc.push n.to_i
|
|
14
16
|
end
|
|
15
17
|
|
|
@@ -20,12 +22,3 @@ end
|
|
|
20
22
|
Then /hasilnya harus (.*) di layar/ do |result|
|
|
21
23
|
@result.should == result.to_f
|
|
22
24
|
end
|
|
23
|
-
|
|
24
|
-
Then /class hasilnya harus (\w*)/ do |class_name|
|
|
25
|
-
@result.class.name.should == class_name
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
Given /it should rain on (\w+)/ do |day|
|
|
29
|
-
@calc.rain?(day).should == true
|
|
30
|
-
end
|
|
31
|
-
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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/formatters/unicode'
|
|
3
5
|
require 'calcolatrice'
|
|
4
6
|
|
|
5
7
|
Before do
|
|
@@ -3,15 +3,14 @@
|
|
|
3
3
|
数学オンチとして
|
|
4
4
|
2つの数の合計を知りたい
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
前提
|
|
8
|
-
かつ
|
|
9
|
-
もし
|
|
10
|
-
ならば
|
|
11
|
-
かつ 結果のクラスは Fixnum
|
|
6
|
+
シナリオテンプレート: 2つの数の加算について
|
|
7
|
+
前提 <値1> を入力
|
|
8
|
+
かつ <値2> を入力
|
|
9
|
+
もし <ボタン> を押した
|
|
10
|
+
ならば <結果> を表示
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
|
15
|
-
| 20
|
|
16
|
-
| 2
|
|
17
|
-
| 0
|
|
12
|
+
例:
|
|
13
|
+
| 値1 | 値2 | ボタン | 結果 |
|
|
14
|
+
| 20 | 30 | add | 50 |
|
|
15
|
+
| 2 | 5 | add | 7 |
|
|
16
|
+
| 0 | 40 | add | 40 |
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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/formatters/unicode'
|
|
3
5
|
require 'calculator'
|
|
4
6
|
|
|
5
7
|
Before do
|
|
@@ -13,18 +15,10 @@ Given "$n を入力" do |n|
|
|
|
13
15
|
@calc.push n.to_i
|
|
14
16
|
end
|
|
15
17
|
|
|
16
|
-
When /(\w+)
|
|
18
|
+
When /(\w+) を押した/ do |op|
|
|
17
19
|
@result = @calc.send op
|
|
18
20
|
end
|
|
19
21
|
|
|
20
|
-
Then
|
|
22
|
+
Then /(.*) を表示/ do |result|
|
|
21
23
|
@result.should == result.to_f
|
|
22
24
|
end
|
|
23
|
-
|
|
24
|
-
Then /結果のクラスは (\w*)/ do |class_name|
|
|
25
|
-
@result.class.name.should == class_name
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
Given /it should rain on (\w+)/ do |day|
|
|
29
|
-
@calc.rain?(day).should == true
|
|
30
|
-
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
기능: 덧셈
|
|
2
|
+
예기치못한 실수을 방지하기 위해
|
|
3
|
+
수학을 잘 못하는 사람으로써
|
|
4
|
+
두숫자의 합을 알고 싶다
|
|
5
|
+
|
|
6
|
+
시나리오: 두 숫자를 더하기
|
|
7
|
+
조건 계산기에 50을 입력했음
|
|
8
|
+
그리고 계산기에 70을 입력했음
|
|
9
|
+
만일 내가 add를 누르면
|
|
10
|
+
그러면 화면에 출력된 결과는 120이다
|
|
11
|
+
|
|
12
|
+
다른 예:
|
|
13
|
+
| 입력1 | 입력2 | 버튼 | 결과 |
|
|
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/formatters/unicode'
|
|
5
|
+
require 'calculator'
|
|
6
|
+
|
|
7
|
+
Before do
|
|
8
|
+
@calc = Calculator.new
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
After do
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
Given /^계산기에 (.*)을 입력했음$/ do |n|
|
|
15
|
+
@calc.push n.to_i
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
When /^내가 (.*)를 누루면$/ do |op|
|
|
19
|
+
@result = @calc.send op
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
Then /^화면에 출력된 결과는 (.*)이다$/ do |result|
|
|
23
|
+
@result.should == result.to_f
|
|
24
|
+
end
|
|
@@ -3,15 +3,15 @@ Sąvybė: Sudėtis
|
|
|
3
3
|
Kaip matematinis idiotas
|
|
4
4
|
Aš noriu, kad man pasakytų dviejų skaičių sumą
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
# Someone please translate this in languages.yml please
|
|
7
|
+
Scenario Outline: dviejų skaičių sudėtis
|
|
8
|
+
Duota aš įvedžiau <įvestis_1> į skaičiuotuvą
|
|
9
|
+
Ir aš įvedžiau <įvestis_2> į skaičiuotuvą
|
|
10
|
+
Kai aš paspaudžiu "<mygtukas>"
|
|
11
|
+
Tada rezultatas ekrane turi būti <išvestis>
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
| įvestis_1 | įvestis_2 | mygtukas | išvestis |
|
|
15
|
-
| 20 | 30 | add | 50 |
|
|
16
|
-
| 2 | 5 | add | 7 |
|
|
17
|
-
| 0 | 40 | add | 40 |
|
|
13
|
+
Pavyzdžių
|
|
14
|
+
| įvestis_1 | įvestis_2 | mygtukas | išvestis |
|
|
15
|
+
| 20 | 30 | add | 50 |
|
|
16
|
+
| 2 | 5 | add | 7 |
|
|
17
|
+
| 0 | 40 | add | 40 |
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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/formatters/unicode'
|
|
3
5
|
require 'calculator'
|
|
4
6
|
|
|
5
7
|
Before do
|
|
@@ -9,7 +11,7 @@ end
|
|
|
9
11
|
After do
|
|
10
12
|
end
|
|
11
13
|
|
|
12
|
-
Given
|
|
14
|
+
Given /aš įvedžiau (\d+) į skaičiuotuvą/ do |n|
|
|
13
15
|
@calc.push n.to_i
|
|
14
16
|
end
|
|
15
17
|
|
|
@@ -20,12 +22,3 @@ end
|
|
|
20
22
|
Then /rezultatas ekrane turi būti (.*)/ do |result|
|
|
21
23
|
@result.should == result.to_f
|
|
22
24
|
end
|
|
23
|
-
|
|
24
|
-
Then /rezultato klasė turi būti "(\w*)"/ do |class_name|
|
|
25
|
-
@result.class.name.should == class_name
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
Given /turi lyti (\w+)/ do |day|
|
|
29
|
-
@calc.rain?(day).should == true
|
|
30
|
-
end
|
|
31
|
-
|
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
$:.unshift(File.dirname(__FILE__) + '/../../lib')
|
|
3
|
-
require 'kalkulator'
|
|
1
|
+
# encoding: utf-8
|
|
4
2
|
|
|
5
3
|
Before do
|
|
6
4
|
@calc = Kalkulator.new
|
|
7
5
|
end
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
Given /at jeg har tastet inn (\d+)/ do |n|
|
|
7
|
+
Gitt /at jeg har tastet inn (\d+)/ do |n|
|
|
13
8
|
@calc.push n.to_i
|
|
14
9
|
end
|
|
15
10
|
|
|
16
|
-
|
|
11
|
+
Når 'jeg summerer' do
|
|
17
12
|
@result = @calc.add
|
|
18
13
|
end
|
|
19
14
|
|
|
20
|
-
|
|
15
|
+
Så /skal resultatet være (\d*)/ do |result|
|
|
21
16
|
@result.should == result.to_i
|
|
22
17
|
end
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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/formatters/unicode'
|
|
3
5
|
require 'calculadora'
|
|
4
6
|
|
|
5
7
|
Before do
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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/formatters/unicode'
|
|
3
5
|
require 'calculator'
|
|
4
6
|
|
|
5
7
|
Before do
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Функционал: Сложение чисел
|
|
2
|
+
Чтобы не складывать в уме
|
|
3
|
+
Все, у кого с этим туго
|
|
4
|
+
Хотят автоматическое сложение целых чисел
|
|
5
|
+
|
|
6
|
+
Сценарий: Сложение двух целых чисел
|
|
7
|
+
Допустим я ввожу число 50
|
|
8
|
+
И затем ввожу число 70
|
|
9
|
+
Если я нажимаю "+"
|
|
10
|
+
То результатом должно быть число 120
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
Функционал: Последовательные вычисления
|
|
2
|
+
Чтобы вычислять сложные выражения
|
|
3
|
+
Пользователи хотят проводить вычисления над результатом предыдущей операций
|
|
4
|
+
|
|
5
|
+
Предыстория:
|
|
6
|
+
Допустим я сложил 3 и 5
|
|
7
|
+
|
|
8
|
+
Сценарий: сложение с результатом последней операций
|
|
9
|
+
Если я ввожу число 4
|
|
10
|
+
И нажимаю "+"
|
|
11
|
+
То результатом должно быть число 12
|
|
12
|
+
|
|
13
|
+
Сценарий: деление результата последней операции
|
|
14
|
+
Если я ввожу число 2
|
|
15
|
+
И нажимаю "/"
|
|
16
|
+
То результатом должно быть число 4
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Функционал: Деление чисел
|
|
2
|
+
Поскольку деление сложный процесс и люди часто допускают ошибки
|
|
3
|
+
Нужно дать им возможность делить на калькуляторе
|
|
4
|
+
|
|
5
|
+
Структура сценария: Целочисленное деление
|
|
6
|
+
Допустим я ввожу число <делимое>
|
|
7
|
+
И затем ввожу число <делитель>
|
|
8
|
+
Если я нажимаю "/"
|
|
9
|
+
То результатом должно быть число <частное>
|
|
10
|
+
|
|
11
|
+
Значения:
|
|
12
|
+
| делимое | делитель | частное |
|
|
13
|
+
| 100 | 2 | 50 |
|
|
14
|
+
| 28 | 7 | 4 |
|
|
15
|
+
| 0 | 5 | 0 |
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
Допустим /ввожу число (\d+)/ do |число|
|
|
4
|
+
calc.push число.to_i
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
Если /нажимаю "(.*)"/ do |операция|
|
|
8
|
+
calc.send операция
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
То /результатом должно быть число (\d+)/ do |результат|
|
|
12
|
+
calc.result.should == результат.to_f
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
Допустим /я сложил (\d+) и (\d+)/ do |слагаемое1, слагаемое2|
|
|
16
|
+
Допустим %{я ввожу число #{слагаемое1}}
|
|
17
|
+
Допустим %{затем ввожу число #{слагаемое2}}
|
|
18
|
+
Допустим %{я нажимаю "+"}
|
|
19
|
+
end
|
|
@@ -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
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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/formatters/unicode'
|
|
3
5
|
require 'kalkulator'
|
|
4
6
|
|
|
5
7
|
Before do
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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/formatters/unicode'
|
|
3
5
|
require 'calculator'
|
|
4
6
|
|
|
5
7
|
Before do
|
|
@@ -9,7 +11,7 @@ end
|
|
|
9
11
|
After do
|
|
10
12
|
end
|
|
11
13
|
|
|
12
|
-
Given
|
|
14
|
+
Given /我已经在计算器里输入(\d+)/ do |n|
|
|
13
15
|
@calc.push n.to_i
|
|
14
16
|
end
|
|
15
17
|
|