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.
Files changed (348) hide show
  1. data/History.txt +223 -5
  2. data/License.txt +1 -1
  3. data/Manifest.txt +174 -85
  4. data/README.txt +2 -39
  5. data/Rakefile +1 -2
  6. data/bin/cucumber +2 -2
  7. data/config/hoe.rb +9 -3
  8. data/examples/cs/README.textile +1 -22
  9. data/examples/cs/Rakefile +1 -1
  10. data/examples/cs/compile.bat +1 -0
  11. data/examples/cs/features/addition.feature +16 -0
  12. data/examples/cs/features/step_definitons/calculator_steps.rb +19 -0
  13. data/examples/cs/src/demo/Calculator.cs +20 -0
  14. data/examples/i18n/README.textile +1 -1
  15. data/examples/i18n/Rakefile +20 -4
  16. data/examples/i18n/ar/features/addition.feature +10 -11
  17. data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +4 -12
  18. data/examples/i18n/da/features/step_definitons/kalkulator_steps.rb +4 -2
  19. data/examples/i18n/de/features/addition.feature +10 -11
  20. data/examples/i18n/de/features/division.feature +0 -1
  21. data/examples/i18n/de/features/step_definitons/calculator_steps.rb +5 -11
  22. data/examples/i18n/en/features/addition.feature +10 -11
  23. data/examples/i18n/en/features/division.feature +0 -1
  24. data/examples/i18n/en/features/step_definitons/calculator_steps.rb +5 -12
  25. data/examples/i18n/en-lol/Rakefile +6 -0
  26. data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +16 -0
  27. data/examples/i18n/en-lol/features/stuffing.feature +8 -0
  28. data/examples/i18n/en-lol/features/support/env.rb +8 -0
  29. data/examples/i18n/en-lol/lib/basket.rb +12 -0
  30. data/examples/i18n/en-lol/lib/belly.rb +11 -0
  31. data/examples/i18n/es/features/adicion.feature +11 -12
  32. data/examples/i18n/es/features/step_definitons/calculador_steps.rb +10 -11
  33. data/examples/i18n/es/lib/calculador.rb +4 -1
  34. data/examples/i18n/et/features/jagamine.feature +9 -0
  35. data/examples/i18n/et/features/liitmine.feature +10 -11
  36. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +7 -9
  37. data/examples/i18n/et/lib/kalkulaator.rb +5 -1
  38. data/examples/i18n/fi/Rakefile +6 -0
  39. data/examples/i18n/fi/features/jakolasku.feature +9 -0
  40. data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +24 -0
  41. data/examples/i18n/fi/features/yhteenlasku.feature +16 -0
  42. data/examples/i18n/fi/lib/laskin.rb +14 -0
  43. data/examples/i18n/fr/features/addition.feature +16 -12
  44. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +14 -11
  45. data/examples/i18n/fr/lib/calculatrice.rb +1 -1
  46. data/examples/i18n/id/features/addition.feature +10 -11
  47. data/examples/i18n/id/features/division.feature +0 -1
  48. data/examples/i18n/id/features/step_definitons/calculator_steps.rb +5 -12
  49. data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +4 -2
  50. data/examples/i18n/ja/features/addition.feature +10 -11
  51. data/examples/i18n/ja/features/division.feature +2 -3
  52. data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +6 -12
  53. data/examples/i18n/ko/Rakefile +6 -0
  54. data/examples/i18n/ko/features/addition.feature +16 -0
  55. data/examples/i18n/ko/features/division.feature +10 -0
  56. data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +24 -0
  57. data/examples/i18n/ko/lib/calculator.rb +14 -0
  58. data/examples/i18n/lt/features/addition.feature +11 -11
  59. data/examples/i18n/lt/features/division.feature +0 -1
  60. data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +5 -12
  61. data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +4 -9
  62. data/examples/i18n/no/features/summering.feature +1 -0
  63. data/examples/i18n/no/features/support/env.rb +6 -0
  64. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +4 -2
  65. data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +4 -2
  66. data/examples/i18n/ru/Rakefile +6 -0
  67. data/examples/i18n/ru/features/addition.feature +10 -0
  68. data/examples/i18n/ru/features/consecutive_calculations.feature +16 -0
  69. data/examples/i18n/ru/features/division.feature +15 -0
  70. data/examples/i18n/ru/features/step_definitons/calculator_steps.rb +19 -0
  71. data/examples/i18n/ru/features/support/env.rb +6 -0
  72. data/examples/i18n/ru/features/support/world.rb +7 -0
  73. data/examples/i18n/ru/lib/calculator.rb +24 -0
  74. data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +4 -2
  75. data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +5 -3
  76. data/examples/i18n/zh-TW/Rakefile +6 -0
  77. data/examples/i18n/zh-TW/features/addition.feature +16 -0
  78. data/examples/i18n/zh-TW/features/division.feature +10 -0
  79. data/examples/i18n/zh-TW/features/step_definitons/calculator_steps.rb +24 -0
  80. data/examples/i18n/zh-TW/lib/calculator.rb +14 -0
  81. data/examples/java/features/step_definitons/hello_steps.rb +1 -1
  82. data/examples/java/features/step_definitons/tree_steps.rb +1 -1
  83. data/examples/jbehave/README.textile +20 -0
  84. data/examples/jbehave/features/support/env.rb +7 -0
  85. data/examples/jbehave/features/trading.feature +28 -0
  86. data/examples/jbehave/pom.xml +53 -0
  87. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/converters/TraderConverter.java +32 -0
  88. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Stock.java +42 -0
  89. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Trader.java +29 -0
  90. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/persistence/TraderPersister.java +22 -0
  91. data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/scenarios/TraderSteps.java +70 -0
  92. data/examples/selenium/features/search.feature +1 -1
  93. data/examples/selenium/features/step_definitons/search_steps.rb +13 -0
  94. data/examples/selenium/features/support/env.rb +19 -0
  95. data/examples/selenium_webrat/features/search.feature +9 -0
  96. data/examples/selenium_webrat/features/step_definitons/search_steps.rb +13 -0
  97. data/examples/selenium_webrat/features/support/env.rb +41 -0
  98. data/examples/self_test/README.textile +6 -0
  99. data/examples/self_test/Rakefile +6 -0
  100. data/examples/self_test/features/background/failing_background.feature +11 -0
  101. data/examples/self_test/features/background/failing_background_after_success.feature +11 -0
  102. data/examples/self_test/features/background/multiline_args_background.feature +32 -0
  103. data/examples/self_test/features/background/passing_background.feature +10 -0
  104. data/examples/self_test/features/background/pending_background.feature +10 -0
  105. data/examples/self_test/features/background/scenario_outline_failing_background.feature +16 -0
  106. data/examples/self_test/features/background/scenario_outline_passing_background.feature +16 -0
  107. data/examples/self_test/features/call_undefined_step_from_step_def.feature +7 -0
  108. data/examples/self_test/features/failing_expectation.feature +4 -0
  109. data/examples/self_test/features/lots_of_undefined.feature +8 -0
  110. data/examples/self_test/features/outline_sample.feature +15 -0
  111. data/examples/self_test/features/sample.feature +19 -0
  112. data/examples/self_test/features/step_definitions/sample_steps.rb +64 -0
  113. data/examples/self_test/features/support/env.rb +1 -0
  114. data/examples/self_test/features/support/tag_count_formatter.rb +25 -0
  115. data/examples/sinatra/Rakefile +6 -0
  116. data/examples/sinatra/app.rb +14 -0
  117. data/examples/sinatra/features/add.feature +11 -0
  118. data/examples/sinatra/features/step_definitions/add_steps.rb +15 -0
  119. data/examples/sinatra/features/support/env.rb +20 -0
  120. data/examples/sinatra/views/add.erb +5 -0
  121. data/examples/sinatra/views/layout.erb +8 -0
  122. data/examples/tickets/Rakefile +13 -8
  123. data/examples/tickets/cucumber.yml +2 -1
  124. data/examples/tickets/features/172.feature +28 -0
  125. data/examples/tickets/features/177/1.feature +29 -0
  126. data/examples/tickets/features/177/2.feature +21 -0
  127. data/examples/tickets/features/177/3.feature +18 -0
  128. data/examples/tickets/features/180.feature +7 -0
  129. data/examples/tickets/features/236.feature +13 -0
  130. data/examples/tickets/features/241.feature +13 -0
  131. data/examples/tickets/features/lib/eatting_machine.rb +18 -0
  132. data/examples/tickets/features/lib/pantry.rb +20 -0
  133. data/examples/tickets/features/scenario_outline.feature +95 -0
  134. data/examples/tickets/features/step_definitons/scenario_outline_steps.rb +42 -0
  135. data/examples/tickets/features/step_definitons/tickets_steps.rb +46 -5
  136. data/examples/tickets/features/tickets.feature +5 -1
  137. data/examples/watir/README.textile +16 -0
  138. data/examples/watir/features/step_definitons/search_steps.rb +24 -0
  139. data/examples/watir/features/support/env.rb +32 -0
  140. data/features/background.feature +221 -0
  141. data/features/cucumber_cli.feature +389 -0
  142. data/features/cucumber_cli_diff_disabled.feature +45 -0
  143. data/features/cucumber_cli_outlines.feature +81 -0
  144. data/features/custom_formatter.feature +11 -0
  145. data/features/report_called_undefined_steps.feature +34 -0
  146. data/features/step_definitions/cucumber_steps.rb +30 -0
  147. data/features/step_definitions/extra_steps.rb +2 -0
  148. data/features/support/env.rb +8 -0
  149. data/gem_tasks/deployment.rake +0 -23
  150. data/gem_tasks/features.rake +1 -1
  151. data/gem_tasks/fix_cr_lf.rake +1 -1
  152. data/gem_tasks/flog.rake +1 -1
  153. data/gem_tasks/gemspec.rake +4 -0
  154. data/gem_tasks/jar.rake +67 -0
  155. data/gem_tasks/rspec.rake +31 -15
  156. data/gem_tasks/yard.rake +8 -0
  157. data/lib/autotest/cucumber_mixin.rb +41 -25
  158. data/lib/cucumber/ast/background.rb +50 -0
  159. data/lib/cucumber/ast/comment.rb +26 -0
  160. data/lib/cucumber/ast/examples.rb +38 -0
  161. data/lib/cucumber/ast/feature.rb +62 -0
  162. data/lib/cucumber/ast/feature_element.rb +46 -0
  163. data/lib/cucumber/ast/features.rb +20 -0
  164. data/lib/cucumber/ast/outline_table.rb +81 -0
  165. data/lib/cucumber/ast/py_string.rb +58 -0
  166. data/lib/cucumber/ast/scenario.rb +64 -0
  167. data/lib/cucumber/ast/scenario_outline.rb +90 -0
  168. data/lib/cucumber/ast/step.rb +122 -0
  169. data/lib/cucumber/ast/step_collection.rb +66 -0
  170. data/lib/cucumber/ast/step_invocation.rb +110 -0
  171. data/lib/cucumber/ast/table.rb +318 -0
  172. data/lib/cucumber/ast/tags.rb +33 -0
  173. data/lib/cucumber/ast/visitor.rb +125 -0
  174. data/lib/cucumber/ast.rb +29 -0
  175. data/lib/cucumber/broadcaster.rb +2 -9
  176. data/lib/cucumber/cli/configuration.rb +364 -0
  177. data/lib/cucumber/cli/language_help_formatter.rb +59 -0
  178. data/lib/cucumber/cli/main.rb +109 -0
  179. data/lib/cucumber/core_ext/exception.rb +53 -0
  180. data/lib/cucumber/core_ext/instance_exec.rb +54 -0
  181. data/lib/cucumber/core_ext/proc.rb +29 -65
  182. data/lib/cucumber/core_ext/string.rb +26 -0
  183. data/lib/cucumber/formatter/ansicolor.rb +102 -0
  184. data/lib/cucumber/formatter/color_io.rb +23 -0
  185. data/lib/cucumber/formatter/console.rb +109 -0
  186. data/lib/cucumber/formatter/cucumber.css +55 -0
  187. data/lib/cucumber/formatter/cucumber.sass +49 -0
  188. data/lib/cucumber/formatter/html.rb +133 -0
  189. data/lib/cucumber/formatter/pretty.rb +179 -0
  190. data/lib/cucumber/formatter/profile.rb +77 -0
  191. data/lib/cucumber/formatter/progress.rb +60 -0
  192. data/lib/cucumber/formatter/rerun.rb +35 -0
  193. data/lib/cucumber/formatter/unicode.rb +35 -0
  194. data/lib/cucumber/formatter.rb +1 -0
  195. data/lib/cucumber/formatters/unicode.rb +2 -0
  196. data/lib/cucumber/jbehave.rb +97 -0
  197. data/lib/cucumber/languages.yml +214 -72
  198. data/lib/cucumber/parser/basic.rb +0 -0
  199. data/lib/cucumber/parser/feature.rb +1487 -0
  200. data/lib/cucumber/parser/feature.tt +193 -0
  201. data/lib/cucumber/parser/i18n.tt +31 -0
  202. data/lib/cucumber/parser/table.rb +402 -0
  203. data/lib/cucumber/parser/table.tt +59 -0
  204. data/lib/cucumber/parser/treetop_ext.rb +75 -0
  205. data/lib/cucumber/parser.rb +43 -0
  206. data/lib/cucumber/platform.rb +13 -8
  207. data/lib/cucumber/rails/rspec.rb +6 -10
  208. data/lib/cucumber/rails/world.rb +8 -8
  209. data/lib/cucumber/rake/task.rb +46 -9
  210. data/lib/cucumber/step_definition.rb +103 -0
  211. data/lib/cucumber/step_match.rb +49 -0
  212. data/lib/cucumber/step_mother.rb +184 -65
  213. data/lib/cucumber/version.rb +4 -3
  214. data/lib/cucumber/world.rb +53 -0
  215. data/lib/cucumber.rb +45 -21
  216. data/rails_generators/cucumber/cucumber_generator.rb +23 -3
  217. data/rails_generators/cucumber/templates/cucumber +2 -1
  218. data/rails_generators/cucumber/templates/cucumber.rake +13 -5
  219. data/rails_generators/cucumber/templates/env.rb +11 -2
  220. data/rails_generators/cucumber/templates/paths.rb +19 -0
  221. data/rails_generators/cucumber/templates/webrat_steps.rb +60 -40
  222. data/rails_generators/feature/feature_generator.rb +26 -2
  223. data/rails_generators/feature/templates/feature.erb +15 -12
  224. data/rails_generators/feature/templates/steps.erb +14 -16
  225. data/spec/cucumber/ast/background_spec.rb +49 -0
  226. data/spec/cucumber/ast/feature_factory.rb +63 -0
  227. data/spec/cucumber/ast/feature_spec.rb +37 -0
  228. data/spec/cucumber/ast/py_string_spec.rb +47 -0
  229. data/spec/cucumber/ast/scenario_outline_spec.rb +67 -0
  230. data/spec/cucumber/ast/scenario_spec.rb +65 -0
  231. data/spec/cucumber/ast/step_collection_spec.rb +8 -0
  232. data/spec/cucumber/ast/step_spec.rb +66 -0
  233. data/spec/cucumber/ast/table_spec.rb +149 -0
  234. data/spec/cucumber/ast/tags_spec.rb +19 -0
  235. data/spec/cucumber/broadcaster_spec.rb +6 -18
  236. data/spec/cucumber/cli/configuration_spec.rb +275 -0
  237. data/spec/cucumber/cli/main_spec.rb +203 -0
  238. data/spec/cucumber/core_ext/proc_spec.rb +27 -35
  239. data/spec/cucumber/core_ext/string_spec.rb +8 -0
  240. data/spec/cucumber/formatter/ansicolor_spec.rb +35 -0
  241. data/spec/cucumber/formatter/color_io_spec.rb +26 -0
  242. data/spec/cucumber/formatter/html/cucumber.css +37 -0
  243. data/spec/cucumber/formatter/html/cucumber.js +13 -0
  244. data/spec/cucumber/formatter/html/index.html +45 -0
  245. data/spec/cucumber/formatter/html/jquery-1.3.min.js +19 -0
  246. data/spec/cucumber/formatter/html/jquery.uitableedit.js +100 -0
  247. data/spec/cucumber/formatters/profile_formatter_spec.rb +22 -16
  248. data/spec/cucumber/parser/feature_parser_spec.rb +282 -0
  249. data/spec/cucumber/parser/table_parser_spec.rb +48 -0
  250. data/spec/cucumber/rails/stubs/mini_rails.rb +4 -3
  251. data/spec/cucumber/step_definition_spec.rb +81 -0
  252. data/spec/cucumber/step_mother_spec.rb +50 -51
  253. data/spec/cucumber/treetop_parser/empty_feature.feature +1 -1
  254. data/spec/cucumber/treetop_parser/empty_scenario_outline.feature +3 -0
  255. data/spec/cucumber/treetop_parser/invalid_scenario_outlines.feature +7 -0
  256. data/spec/cucumber/treetop_parser/multiple_tables.feature +6 -8
  257. data/spec/cucumber/treetop_parser/scenario_outline.feature +16 -0
  258. data/spec/cucumber/treetop_parser/spaces.feature +3 -1
  259. data/spec/cucumber/treetop_parser/with_comments.feature +1 -1
  260. data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
  261. data/spec/cucumber/world/pending_spec.rb +47 -0
  262. data/spec/spec_helper.rb +4 -3
  263. metadata +192 -95
  264. data/TODO.txt +0 -26
  265. data/examples/calculator_ruby_features/features/addition.rb +0 -23
  266. data/examples/calculator_ruby_features/features/step_definitons/calculator_steps.rb +0 -43
  267. data/examples/cs/features/hello.feature +0 -11
  268. data/examples/cs/features/step_definitons/hello_steps.rb +0 -25
  269. data/examples/cs/features/step_definitons/tree_steps.rb +0 -14
  270. data/examples/cs/features/tree.feature +0 -9
  271. data/examples/cs/src/Hello.cs +0 -18
  272. data/examples/i18n/ja/README.txt +0 -5
  273. data/examples/selenium/features/step_definitons/stories_steps.rb +0 -41
  274. data/examples/watir/features/step_definitons/stories_steps.rb +0 -51
  275. data/features/see_features.feature +0 -8
  276. data/features/steps/features_steps.rb +0 -9
  277. data/gem_tasks/treetop.rake +0 -41
  278. data/lib/cucumber/cli.rb +0 -279
  279. data/lib/cucumber/executor.rb +0 -190
  280. data/lib/cucumber/formatters/ansicolor.rb +0 -109
  281. data/lib/cucumber/formatters/autotest_formatter.rb +0 -23
  282. data/lib/cucumber/formatters/cucumber.css +0 -132
  283. data/lib/cucumber/formatters/cucumber.js +0 -11
  284. data/lib/cucumber/formatters/html_formatter.rb +0 -128
  285. data/lib/cucumber/formatters/jquery.js +0 -32
  286. data/lib/cucumber/formatters/pretty_formatter.rb +0 -234
  287. data/lib/cucumber/formatters/profile_formatter.rb +0 -92
  288. data/lib/cucumber/formatters/progress_formatter.rb +0 -58
  289. data/lib/cucumber/formatters.rb +0 -1
  290. data/lib/cucumber/model/table.rb +0 -28
  291. data/lib/cucumber/model.rb +0 -1
  292. data/lib/cucumber/step_methods.rb +0 -49
  293. data/lib/cucumber/tree/feature.rb +0 -63
  294. data/lib/cucumber/tree/features.rb +0 -21
  295. data/lib/cucumber/tree/given_scenario.rb +0 -13
  296. data/lib/cucumber/tree/scenario.rb +0 -174
  297. data/lib/cucumber/tree/step.rb +0 -134
  298. data/lib/cucumber/tree/table.rb +0 -26
  299. data/lib/cucumber/tree/top_down_visitor.rb +0 -23
  300. data/lib/cucumber/tree.rb +0 -18
  301. data/lib/cucumber/treetop_parser/feature.treetop.erb +0 -206
  302. data/lib/cucumber/treetop_parser/feature_ar.rb +0 -1591
  303. data/lib/cucumber/treetop_parser/feature_cy.rb +0 -1591
  304. data/lib/cucumber/treetop_parser/feature_da.rb +0 -1591
  305. data/lib/cucumber/treetop_parser/feature_de.rb +0 -1591
  306. data/lib/cucumber/treetop_parser/feature_en-tx.rb +0 -1591
  307. data/lib/cucumber/treetop_parser/feature_en.rb +0 -1591
  308. data/lib/cucumber/treetop_parser/feature_es.rb +0 -1591
  309. data/lib/cucumber/treetop_parser/feature_et.rb +0 -1591
  310. data/lib/cucumber/treetop_parser/feature_fr.rb +0 -1591
  311. data/lib/cucumber/treetop_parser/feature_id.rb +0 -1591
  312. data/lib/cucumber/treetop_parser/feature_it.rb +0 -1591
  313. data/lib/cucumber/treetop_parser/feature_ja.rb +0 -1591
  314. data/lib/cucumber/treetop_parser/feature_lt.rb +0 -1591
  315. data/lib/cucumber/treetop_parser/feature_nl.rb +0 -1591
  316. data/lib/cucumber/treetop_parser/feature_no.rb +0 -1591
  317. data/lib/cucumber/treetop_parser/feature_parser.rb +0 -34
  318. data/lib/cucumber/treetop_parser/feature_pl.rb +0 -1591
  319. data/lib/cucumber/treetop_parser/feature_pt.rb +0 -1591
  320. data/lib/cucumber/treetop_parser/feature_ro.rb +0 -1591
  321. data/lib/cucumber/treetop_parser/feature_ro2.rb +0 -1591
  322. data/lib/cucumber/treetop_parser/feature_ru.rb +0 -1591
  323. data/lib/cucumber/treetop_parser/feature_se.rb +0 -1591
  324. data/lib/cucumber/treetop_parser/feature_zh-CN.rb +0 -1591
  325. data/script/console +0 -10
  326. data/script/console.cmd +0 -1
  327. data/script/destroy +0 -14
  328. data/script/destroy.cmd +0 -1
  329. data/script/generate +0 -14
  330. data/script/generate.cmd +0 -1
  331. data/script/txt2html +0 -74
  332. data/script/txt2html.cmd +0 -1
  333. data/setup.rb +0 -1585
  334. data/spec/cucumber/cli_spec.rb +0 -274
  335. data/spec/cucumber/executor_spec.rb +0 -298
  336. data/spec/cucumber/formatters/ansicolor_spec.rb +0 -35
  337. data/spec/cucumber/formatters/autotest_formatter_spec.rb +0 -26
  338. data/spec/cucumber/formatters/features.html +0 -269
  339. data/spec/cucumber/formatters/html_formatter_spec.rb +0 -74
  340. data/spec/cucumber/formatters/pretty_formatter_spec.rb +0 -204
  341. data/spec/cucumber/formatters/progress_formatter_spec.rb +0 -65
  342. data/spec/cucumber/model/table_spec.rb +0 -20
  343. data/spec/cucumber/tree/feature_spec.rb +0 -43
  344. data/spec/cucumber/tree/row_scenario_spec.rb +0 -55
  345. data/spec/cucumber/tree/scenario_spec.rb +0 -76
  346. data/spec/cucumber/tree/step_spec.rb +0 -50
  347. data/spec/cucumber/treetop_parser/feature_parser_spec.rb +0 -98
  348. /data/examples/{calculator_ruby_features → selenium_webrat}/Rakefile +0 -0
data/README.txt CHANGED
@@ -1,41 +1,4 @@
1
1
  = Cucumber
2
2
 
3
- * http://github.com/aslakhellesoy/cucumber
4
-
5
- == DESCRIPTION:
6
-
7
- Cucumber executes plain text documentation of code against that code.
8
- Documentation: http://github.com/aslakhellesoy/cucumber/wikis/home
9
-
10
- == REQUIREMENTS:
11
-
12
- * FIX (list of requirements)
13
-
14
- == INSTALL:
15
-
16
- * gem install cucumber
17
-
18
- == LICENSE:
19
-
20
- (The MIT License)
21
-
22
- Copyright (c) 2008 Aslak Hellesøy
23
-
24
- Permission is hereby granted, free of charge, to any person obtaining
25
- a copy of this software and associated documentation files (the
26
- 'Software'), to deal in the Software without restriction, including
27
- without limitation the rights to use, copy, modify, merge, publish,
28
- distribute, sublicense, and/or sell copies of the Software, and to
29
- permit persons to whom the Software is furnished to do so, subject to
30
- the following conditions:
31
-
32
- The above copyright notice and this permission notice shall be
33
- included in all copies or substantial portions of the Software.
34
-
35
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
36
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
37
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
38
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
39
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
40
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
41
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
3
+ The main website is at http://cukes.info/
4
+ The documentation is at http://github.com/aslakhellesoy/cucumber/wikis/home/
data/Rakefile CHANGED
@@ -5,5 +5,4 @@ require 'config/hoe' # setup Hoe + all gem configuration
5
5
  Dir['gem_tasks/**/*.rake'].each { |rake| load rake }
6
6
 
7
7
  # Hoe gives us :default => :test, but we don't have Test::Unit tests.
8
- Rake::Task[:default].clear_prerequisites
9
- task :default => [:spec, :features]
8
+ Rake::Task[:default].clear_prerequisites rescue nil # For some super weird reason this fails for some...
data/bin/cucumber CHANGED
@@ -2,5 +2,5 @@
2
2
  # Add '.rb' to work around a bug in IronRuby's File#dirname
3
3
  $:.unshift(File.dirname(__FILE__ + '.rb') + '/../lib') unless $:.include?(File.dirname(__FILE__ + '.rb') + '/../lib')
4
4
 
5
- require 'cucumber/cli'
6
- Cucumber::CLI.execute
5
+ require 'cucumber/cli/main'
6
+ Cucumber::Cli::Main.execute(ARGV.dup)
data/config/hoe.rb CHANGED
@@ -1,10 +1,11 @@
1
+ # encoding: utf-8
1
2
  require 'cucumber/version'
2
3
 
3
4
  AUTHOR = 'Aslak Hellesøy' # can also be an array of Authors
4
5
  EMAIL = "aslak.hellesoy@gmail.com"
5
6
  DESCRIPTION = "Executable Feature scenarios"
6
7
  GEM_NAME = 'cucumber' # what ppl will type to install your gem
7
- HOMEPATH = "http://github.com/aslakhellesoy/cucumber"
8
+ HOMEPATH = "http://cukes.info"
8
9
  RUBYFORGE_PROJECT = 'rspec'
9
10
 
10
11
  @config_file = "~/.rubyforge/user-config.yml"
@@ -57,8 +58,13 @@ $hoe = Hoe.new(GEM_NAME, VERS) do |p|
57
58
  # == Optional
58
59
  p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
59
60
  #p.extra_deps = [] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
60
- p.extra_deps = [ ['term-ansicolor', '>= 1.0.3'], ['treetop', '>= 1.2.4'], ['diff-lcs', '>= 1.1.2'] ]
61
- p.extra_dev_deps = [ ['rspec', '>= 1.1.11'] ]
61
+ p.extra_deps = [
62
+ ['term-ansicolor', '>= 1.0.3'],
63
+ ['treetop', '>= 1.2.4'],
64
+ ['polyglot', '>= 0.2.4'], # Remove this when Treetop no longer loads polyglot by default.
65
+ ['diff-lcs', '>= 1.1.2'],
66
+ ['builder', '>= 2.1.2']
67
+ ]
62
68
 
63
69
  #p.spec_extras = {} # A hash of extra values to set in the gemspec.
64
70
 
@@ -1,22 +1 @@
1
- h1. Using Cucumber with Java
2
-
3
- This directory contains code to demonstrate how Cucumber can be used to develop Java code.
4
- You need JRuby 1.1.3 or higher installed and JRuby's bin directory on your PATH.
5
-
6
- h2. Installing required gems
7
-
8
- jruby -S gem install aslakhellesoy-cucumber
9
- jruby -S gem install diff-lcs
10
-
11
- h2. Running the scenarios
12
-
13
- Open a shell in this directory (java) and execute the following command:
14
-
15
- <pre><code>
16
- jruby -S rake features
17
- </code></pre>
18
-
19
- This will compile the java code and package it in a jar file, and then run Cucumber against
20
- that code.
21
-
22
- There is a deliberate error. See if you can fix it!
1
+ See "IronRuby and .NET":http://github.com/aslakhellesoy/cucumber/wikis/ironruby-and-net
data/examples/cs/Rakefile CHANGED
@@ -8,5 +8,5 @@ end
8
8
  task :features => :compile
9
9
 
10
10
  task :compile do
11
- sh "csc /target:library /out:Cucumber.Demo.dll src\\Hello.cs"
11
+ sh "csc /target:library /out:Demo.dll src\\demo\\Calculator.cs"
12
12
  end
@@ -0,0 +1 @@
1
+ csc /target:library /out:Calculator.dll src\demo\Calculator.cs
@@ -0,0 +1,16 @@
1
+ Feature: Addition
2
+ In order to avoid silly mistakes
3
+ As a math idiot
4
+ I want to be told the sum of two numbers
5
+
6
+ Scenario: Add two numbers
7
+ Given I have entered 50 into the calculator
8
+ And I have entered 70 into the calculator
9
+ When I press add
10
+ Then the result should be 120 on the screen
11
+
12
+ More Examples:
13
+ | input_1 | input_2 | output |
14
+ | 20 | 30 | 50 |
15
+ | 2 | 5 | 7 |
16
+ | 0 | 40 | 40 |
@@ -0,0 +1,19 @@
1
+ require 'spec/expectations'
2
+ $:.unshift(File.dirname(__FILE__) + '/../../lib') # This line is not needed in your own project
3
+ require 'Calculator'
4
+
5
+ Before do
6
+ @calc = Demo::Calculator.new
7
+ end
8
+
9
+ Given "I have entered $n into the calculator" do |n|
10
+ @calc.push n.to_i
11
+ end
12
+
13
+ When /I press add/ do
14
+ @result = @calc.Add
15
+ end
16
+
17
+ Then /the result should be (.*) on the screen/ do |result|
18
+ @result.should == result.to_i
19
+ end
@@ -0,0 +1,20 @@
1
+ using System;
2
+ using System.Collections.Generic;
3
+
4
+ namespace Demo {
5
+ public class Calculator {
6
+ private List<int>args = new List<int>();
7
+
8
+ public void Push(int n) {
9
+ args.Add(n);
10
+ }
11
+
12
+ public int Add() {
13
+ int result = 0;
14
+ foreach(int n in args) {
15
+ result += n;
16
+ }
17
+ return result;
18
+ }
19
+ }
20
+ }
@@ -3,7 +3,7 @@ h1. Internationalisation (i18n) examples
3
3
  Under this directory you'll find examples of Cucumber features written in
4
4
  many of the natural languages Cucumber supports.
5
5
 
6
- For a full list of what languages Cucumber supports - run <pre>cucumber --help</pre>
6
+ For a full list of what languages Cucumber supports - run <pre>cucumber --language help</pre>
7
7
 
8
8
  h2. Running all the examples
9
9
 
@@ -4,13 +4,29 @@ task :i18n do
4
4
  Dir["#{dir}/*"].each do |f|
5
5
  if File.directory?(f)
6
6
  lang = f[dir.length+1..-1]
7
- Dir.chdir(f) do
8
- rake("features")
7
+ if supported?(lang)
8
+ Dir.chdir(f) do
9
+ rake("features")
10
+ end
11
+ else
12
+ STDERR.puts %{
13
+ !!!!!
14
+ !!!!! SKIPPING #{lang} (Still needs some work)
15
+ !!!!!
16
+ }
9
17
  end
10
18
  end
11
19
  end
12
20
  end
13
21
 
22
+ def supported?(lang)
23
+ if RUBY_VERSION =~ /^1\.9/
24
+ !%w{ar ko zh-CN}.index(lang)
25
+ else
26
+ !%w{ar ko}.index(lang)
27
+ end
28
+ end
29
+
14
30
  def rake(args)
15
- ruby(File.join(Gem.bindir, 'rake'), args)
16
- end
31
+ ruby($0, args) rescue nil
32
+ end
@@ -3,15 +3,14 @@
3
3
  كشخص غبي في الرياضيات
4
4
  اريد معرفة ناتج جمع عددين
5
5
 
6
- سيناريو: جمع عددين
7
- بفرض كتابة ٥٠ في الآلة الحاسبة
8
- و كتابة ٧٠ في الآلة الحاسبة
9
- متى يتم الضغط على جمع
10
- اذاً يظهر ١٢ على الشاشة
11
- و الناتج يجب ان يكون Fixnum
6
+ سيناريو مخطط: جمع عددين
7
+ بفرض كتابة <input_1> في الآلة الحاسبة
8
+ و كتابة <input_2> في الآلة الحاسبة
9
+ متى يتم الضغط على <button>
10
+ اذاً يظهر <output> على الشاشة
12
11
 
13
- امثلة اكثر:
14
- | input_1 | input_2 | button | output | class |
15
- | 20 | 30 | جمع | 50 | Fixnum |
16
- | 2 | 5 | جمع | 7 | Fixnum |
17
- | 0 | 40 | جمع | 40 | Fixnum |
12
+ امثلة:
13
+ | input_1 | input_2 | button | output |
14
+ | 20 | 30 | جمع | 50 |
15
+ | 2 | 5 | جمع | 7 |
16
+ | 0 | 40 | جمع | 40 |
@@ -1,6 +1,7 @@
1
- $KCODE='u'
2
- require 'spec'
3
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
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'
4
5
  require 'calculator'
5
6
 
6
7
  Before do
@@ -21,12 +22,3 @@ end
21
22
  Then /يظهر (.*) على الشاشة/ do |result|
22
23
  @result.should == result.to_f
23
24
  end
24
-
25
- Then /يجب ان يكون (\w*)/ do |class_name|
26
- @result.class.name.should == class_name
27
- end
28
-
29
- Given /it should rain on (\w+)/ do |day|
30
- @calc.rain?(day).should == true
31
- end
32
-
@@ -1,5 +1,7 @@
1
- require 'spec'
2
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
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
@@ -3,15 +3,14 @@ Funktionalität: Addition
3
3
  möchte ich als Matheidiot
4
4
  die Summe zweier Zahlen gesagt bekommen
5
5
 
6
- Szenario: Zwei Zahlen hinzufügen
7
- Gegeben sei ich habe 50 in den Taschenrechner eingegeben
8
- Und ich habe 70 in den Taschenrechner eingegeben
9
- Wenn ich add drücke
10
- Dann sollte das Ergebniss auf dem Bildschirm 120 sein
11
- Und die Ergebnissklasse sollte eine Fixnum sein
6
+ Szenariogrundriss: Zwei Zahlen hinzufügen
7
+ Gegeben sei ich habe <Eingabe_1> in den Taschenrechner eingegeben
8
+ Und ich habe <Eingabe_2> in den Taschenrechner eingegeben
9
+ Wenn ich <Knopf> drücke
10
+ Dann sollte das Ergebniss auf dem Bildschirm <Ausgabe> sein
12
11
 
13
- Mehr Beispiele:
14
- | Eingabe_1 | Eingabe_2 | Knopf | Ausgabe | Klasse |
15
- | 20 | 30 | add | 50 | Fixnum |
16
- | 2 | 5 | add | 7 | Fixnum |
17
- | 0 | 40 | add | 40 | Fixnum |
12
+ Beispiele:
13
+ | Eingabe_1 | Eingabe_2 | Knopf | Ausgabe |
14
+ | 20 | 30 | add | 50 |
15
+ | 2 | 5 | add | 7 |
16
+ | 0 | 40 | add | 40 |
@@ -7,4 +7,3 @@ Funktionalität: Division
7
7
  Und ich habe 2 in den Taschenrechner eingegeben
8
8
  Wenn ich divide drücke
9
9
  Dann sollte das Ergebniss auf dem Bildschirm 1.5 sein
10
- Und die Ergebnissklasse sollte eine Float sein
@@ -1,5 +1,7 @@
1
- require 'spec'
2
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
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 "ich habe $n in den Taschenrechner eingegeben" do |n|
14
+ Given /ich habe (\d+) in den Taschenrechner eingegeben/ do |n|
13
15
  @calc.push n.to_i
14
16
  end
15
17
 
@@ -20,11 +22,3 @@ end
20
22
  Then /sollte das Ergebniss auf dem Bildschirm (.*) sein/ do |result|
21
23
  @result.should == result.to_f
22
24
  end
23
-
24
- Then /die Ergebnissklasse sollte eine (\w*) sein/ 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
@@ -3,15 +3,14 @@ Feature: Addition
3
3
  As a math idiot
4
4
  I want to be told the sum of two numbers
5
5
 
6
- Scenario: Add two numbers
7
- Given I have entered 50 into the calculator
8
- And I have entered 70 into the calculator
9
- When I press add
10
- Then the result should be 120 on the screen
11
- And the result class should be Fixnum
6
+ Scenario Outline: Add two numbers
7
+ Given I have entered <input_1> into the calculator
8
+ And I have entered <input_2> into the calculator
9
+ When I press <button>
10
+ Then the result should be <output> on the screen
12
11
 
13
- More Examples:
14
- | input_1 | input_2 | button | output | class |
15
- | 20 | 30 | add | 50 | Fixnum |
16
- | 2 | 5 | add | 7 | Fixnum |
17
- | 0 | 40 | add | 40 | Fixnum |
12
+ Examples:
13
+ | input_1 | input_2 | button | output |
14
+ | 20 | 30 | add | 50 |
15
+ | 2 | 5 | add | 7 |
16
+ | 0 | 40 | add | 40 |
@@ -7,4 +7,3 @@ Feature: Division
7
7
  And I have entered 2 into the calculator
8
8
  When I press divide
9
9
  Then the result should be 1.5 on the screen
10
- And the result class should be Float
@@ -1,5 +1,7 @@
1
- require 'spec'
2
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
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 "I have entered $n into the calculator" do |n|
14
+ Given /I have entered (\d+) into the calculator/ do |n|
13
15
  @calc.push n.to_i
14
16
  end
15
17
 
@@ -20,12 +22,3 @@ end
20
22
  Then /the result should be (.*) on the screen/ do |result|
21
23
  @result.should == result.to_f
22
24
  end
23
-
24
- Then /the result class should be (\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
-
@@ -0,0 +1,6 @@
1
+ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
+ require 'cucumber/rake/task'
3
+
4
+ Cucumber::Rake::Task.new do |t|
5
+ t.cucumber_opts = "--language en-lol"
6
+ end
@@ -0,0 +1,16 @@
1
+ ICANHAZ /^IN TEH BEGINNIN (\d+) CUCUMBRZ$/ do |n|
2
+ @basket = Basket.new(n.to_i)
3
+ end
4
+
5
+ WEN /^I EAT (\d+) CUCUMBRZ$/ do |n|
6
+ @belly = Belly.new
7
+ @belly.eat(@basket.take(n.to_i))
8
+ end
9
+
10
+ DEN /^I HAS (\d+) CUCUMBERZ IN MAH BELLY$/ do |n|
11
+ @belly.cukes.should == n.to_i
12
+ end
13
+
14
+ AN /^IN TEH END (\d+) CUCUMBRZ KTHXBAI$/ do |n|
15
+ @basket.cukes.should == n.to_i
16
+ end
@@ -0,0 +1,8 @@
1
+ # stuffing.feature
2
+ OH HAI: STUFFING
3
+
4
+ MISHUN: CUCUMBR
5
+ I CAN HAZ IN TEH BEGINNIN 3 CUCUMBRZ
6
+ WEN I EAT 2 CUCUMBRZ
7
+ DEN I HAS 2 CUCUMBERZ IN MAH BELLY
8
+ AN IN TEH END 1 CUCUMBRZ KTHXBAI
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+ $KCODE='u' unless Cucumber::RUBY_1_9
3
+ require 'cucumber/formatter/unicode'
4
+ require 'spec/expectations'
5
+
6
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
7
+ require 'basket'
8
+ require 'belly'
@@ -0,0 +1,12 @@
1
+ class Basket
2
+ attr_reader :cukes
3
+
4
+ def initialize(cukes)
5
+ @cukes = cukes
6
+ end
7
+
8
+ def take(cukes)
9
+ @cukes -= cukes
10
+ cukes
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ class Belly
2
+ attr_reader :cukes
3
+
4
+ def initialize
5
+ @cukes = 0
6
+ end
7
+
8
+ def eat(cukes)
9
+ @cukes += cukes
10
+ end
11
+ end
@@ -1,17 +1,16 @@
1
1
  Característica: adición
2
2
  Para evitar hacer errores tontos
3
- Como contador
3
+ Como un matemático idiota
4
4
  Quiero saber la suma de los números
5
5
 
6
- Escenario: dos números
7
- Dado que he introducido 5
8
- Y he introducido 7
9
- Cuando añado
10
- Entonces el resultado debe ser 12
6
+ Esquema del escenario: Sumar dos números
7
+ Dado que he introducido <entrada_1> en la calculadora
8
+ Y que he introducido <entrada_2> en la calculadora
9
+ Cuando oprimo el <botón>
10
+ Entonces el resultado debe ser <resultado> en la pantalla
11
11
 
12
- Escenario: tres números
13
- Dado que he introducido 5
14
- Y he introducido 7
15
- Y he introducido 1
16
- Cuando añado
17
- Entonces el resultado debe ser 13
12
+ Ejemplos:
13
+ | entrada_1 | entrada_2 | botón | resultado |
14
+ | 20 | 30 | add | 50 |
15
+ | 2 | 5 | add | 7 |
16
+ | 0 | 40 | add | 40 |
@@ -1,22 +1,21 @@
1
- require 'spec'
2
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
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 'calculador'
4
6
 
5
7
  Before do
6
8
  @calc = Calculador.new
7
9
  end
8
10
 
9
- After do
10
- end
11
-
12
- Given /he introducido (\d+)/ do |n|
11
+ Dado /que he introducido (\d+) en la calculadora/ do |n|
13
12
  @calc.push n.to_i
14
13
  end
15
14
 
16
- When 'añado' do
17
- @result = @calc.add
15
+ Cuando /oprimo el (\w+)/ do |op|
16
+ @result = @calc.send op
18
17
  end
19
18
 
20
- Then /el resultado debe ser (\d*)/ do |result|
21
- @result.should == result.to_i
22
- end
19
+ Entonces /el resultado debe ser (.*) en la pantalla/ do |result|
20
+ @result.should == result.to_f
21
+ end
@@ -5,7 +5,10 @@ class Calculador
5
5
  end
6
6
 
7
7
  def add
8
- #@args[0] + @args[1]
9
8
  @args.inject(0){|n,sum| sum+=n}
10
9
  end
10
+
11
+ def divide
12
+ @args[0].to_f / @args[1].to_f
13
+ end
11
14
  end
@@ -0,0 +1,9 @@
1
+ Omadus: Jagamine
2
+ Rumalate vigade vältimiseks
3
+ Peavad kassapidajad saama arvutada murdudes
4
+
5
+ Stsenaarium: Tavalised numrbid
6
+ Eeldades et olen sisestanud kalkulaatorisse numbri 3
7
+ Ja olen sisestanud kalkulaatorisse numbri 2
8
+ Kui ma vajutan jaga
9
+ Siis vastuseks peab ekraanil kuvatama 1.5
@@ -3,15 +3,14 @@ Omadus: Liitmine
3
3
  Olles matemaatika-puupea
4
4
  Tahan et mulle öeldaks kahe numbri summa
5
5
 
6
- Stsenaarium: Liida kaks numbrit
7
- Eeldades et olen sisestanud kalkulaatorisse numbri 50
8
- Ja olen sisestanud kalkulaatorisse numbri 70
9
- Kui ma vajutan liida
10
- Siis vastuseks peab ekraanil kuvatama 120
11
- Ja vastuseklass peab olema tüüpi Fixnum
6
+ Raamstsenaarium: Liida kaks numbrit
7
+ Eeldades et olen sisestanud kalkulaatorisse numbri <input_1>
8
+ Ja olen sisestanud kalkulaatorisse numbri <input_2>
9
+ Kui ma vajutan <button>
10
+ Siis vastuseks peab ekraanil kuvatama <output>
12
11
 
13
- More Examples:
14
- | input_1 | input_2 | button | output | class |
15
- | 20 | 30 | liida | 50 | Fixnum |
16
- | 2 | 5 | liida | 7 | Fixnum |
17
- | 0 | 40 | liida | 40 | Fixnum |
12
+ Juhtumid:
13
+ | input_1 | input_2 | button | output |
14
+ | 20 | 30 | liida | 50 |
15
+ | 2 | 5 | liida | 7 |
16
+ | 0 | 40 | liida | 40 |
@@ -1,5 +1,7 @@
1
- require 'spec'
2
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
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 'kalkulaator'
4
6
 
5
7
  Before do
@@ -13,14 +15,10 @@ Given /olen sisestanud kalkulaatorisse numbri (\d+)/ do |n|
13
15
  @calc.push n.to_i
14
16
  end
15
17
 
16
- When /ma vajutan (.*)/ do |op|
18
+ When /ma vajutan (\w+)/ do |op|
17
19
  @result = @calc.send op
18
20
  end
19
21
 
20
- Then /vastuseks peab ekraanil kuvatama (\d*)/ do |result|
21
- @result.should == result.to_i
22
+ Then /vastuseks peab ekraanil kuvatama (.*)/ do |result|
23
+ @result.should == result.to_f
22
24
  end
23
-
24
- Then /vastuseklass peab olema tüüpi (\w*)/ do |class_name|
25
- @result.class.name.should == class_name
26
- end
@@ -5,6 +5,10 @@ class Kalkulaator
5
5
  end
6
6
 
7
7
  def liida
8
- @args.inject(0) {|n,sum| sum+n}
8
+ @args.inject(0){|n,sum| sum+=n}
9
9
  end
10
+
11
+ def jaga
12
+ @args[0].to_f / @args[1].to_f
13
+ end
10
14
  end
@@ -0,0 +1,6 @@
1
+ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
+ require 'cucumber/rake/task'
3
+
4
+ Cucumber::Rake::Task.new do |t|
5
+ t.cucumber_opts = "--language fi"
6
+ end