rspec 0.0.10 → 0.1.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 (395) hide show
  1. data/CHANGES +8 -0
  2. data/README +20 -0
  3. data/Rakefile.rb +122 -0
  4. data/lib/rspec.rb +9 -0
  5. data/lib/spec.rb +4 -29
  6. data/lib/spec/context.rb +61 -0
  7. data/lib/spec/{mocks/errors.rb → exceptions.rb} +5 -4
  8. data/lib/spec/expectations.rb +61 -50
  9. data/lib/spec/mock.rb +104 -0
  10. data/lib/spec/text_runner.rb +84 -0
  11. metadata +48 -452
  12. data/.autotest +0 -3
  13. data/.gitignore +0 -7
  14. data/History.txt +0 -1104
  15. data/MIT-LICENSE +0 -20
  16. data/Manifest.txt +0 -387
  17. data/README.txt +0 -36
  18. data/Rakefile +0 -88
  19. data/TODO +0 -1
  20. data/bin/autospec +0 -3
  21. data/bin/spec +0 -4
  22. data/bin/spec_translator +0 -8
  23. data/examples/pure/autogenerated_docstrings_example.rb +0 -19
  24. data/examples/pure/before_and_after_example.rb +0 -40
  25. data/examples/pure/behave_as_example.rb +0 -45
  26. data/examples/pure/custom_expectation_matchers.rb +0 -54
  27. data/examples/pure/custom_formatter.rb +0 -12
  28. data/examples/pure/dynamic_spec.rb +0 -9
  29. data/examples/pure/file_accessor.rb +0 -19
  30. data/examples/pure/file_accessor_spec.rb +0 -38
  31. data/examples/pure/greeter_spec.rb +0 -31
  32. data/examples/pure/helper_method_example.rb +0 -14
  33. data/examples/pure/io_processor.rb +0 -8
  34. data/examples/pure/io_processor_spec.rb +0 -21
  35. data/examples/pure/legacy_spec.rb +0 -11
  36. data/examples/pure/mocking_example.rb +0 -27
  37. data/examples/pure/multi_threaded_behaviour_runner.rb +0 -28
  38. data/examples/pure/nested_classes_example.rb +0 -36
  39. data/examples/pure/partial_mock_example.rb +0 -29
  40. data/examples/pure/pending_example.rb +0 -20
  41. data/examples/pure/predicate_example.rb +0 -27
  42. data/examples/pure/priority.txt +0 -1
  43. data/examples/pure/shared_example_group_example.rb +0 -81
  44. data/examples/pure/shared_stack_examples.rb +0 -38
  45. data/examples/pure/spec_helper.rb +0 -3
  46. data/examples/pure/stack.rb +0 -36
  47. data/examples/pure/stack_spec.rb +0 -63
  48. data/examples/pure/stack_spec_with_nested_example_groups.rb +0 -67
  49. data/examples/pure/stubbing_example.rb +0 -69
  50. data/examples/stories/adder.rb +0 -13
  51. data/examples/stories/addition +0 -34
  52. data/examples/stories/addition.rb +0 -9
  53. data/examples/stories/calculator.rb +0 -65
  54. data/examples/stories/game-of-life/.loadpath +0 -5
  55. data/examples/stories/game-of-life/README.txt +0 -21
  56. data/examples/stories/game-of-life/behaviour/everything.rb +0 -6
  57. data/examples/stories/game-of-life/behaviour/examples/examples.rb +0 -3
  58. data/examples/stories/game-of-life/behaviour/examples/game_behaviour.rb +0 -35
  59. data/examples/stories/game-of-life/behaviour/examples/grid_behaviour.rb +0 -66
  60. data/examples/stories/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +0 -21
  61. data/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +0 -21
  62. data/examples/stories/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +0 -42
  63. data/examples/stories/game-of-life/behaviour/stories/ICanCreateACell.story +0 -42
  64. data/examples/stories/game-of-life/behaviour/stories/ICanKillACell.story +0 -17
  65. data/examples/stories/game-of-life/behaviour/stories/TheGridWraps.story +0 -53
  66. data/examples/stories/game-of-life/behaviour/stories/create_a_cell.rb +0 -52
  67. data/examples/stories/game-of-life/behaviour/stories/helper.rb +0 -6
  68. data/examples/stories/game-of-life/behaviour/stories/kill_a_cell.rb +0 -26
  69. data/examples/stories/game-of-life/behaviour/stories/steps.rb +0 -5
  70. data/examples/stories/game-of-life/behaviour/stories/stories.rb +0 -3
  71. data/examples/stories/game-of-life/behaviour/stories/stories.txt +0 -22
  72. data/examples/stories/game-of-life/life.rb +0 -3
  73. data/examples/stories/game-of-life/life/game.rb +0 -23
  74. data/examples/stories/game-of-life/life/grid.rb +0 -43
  75. data/examples/stories/helper.rb +0 -9
  76. data/examples/stories/steps/addition_steps.rb +0 -18
  77. data/failing_examples/README.txt +0 -7
  78. data/failing_examples/diffing_spec.rb +0 -36
  79. data/failing_examples/failing_autogenerated_docstrings_example.rb +0 -19
  80. data/failing_examples/failure_in_setup.rb +0 -10
  81. data/failing_examples/failure_in_teardown.rb +0 -10
  82. data/failing_examples/mocking_example.rb +0 -40
  83. data/failing_examples/mocking_with_flexmock.rb +0 -26
  84. data/failing_examples/mocking_with_mocha.rb +0 -25
  85. data/failing_examples/mocking_with_rr.rb +0 -27
  86. data/failing_examples/partial_mock_example.rb +0 -20
  87. data/failing_examples/predicate_example.rb +0 -29
  88. data/failing_examples/raising_example.rb +0 -47
  89. data/failing_examples/spec_helper.rb +0 -3
  90. data/failing_examples/syntax_error_example.rb +0 -7
  91. data/failing_examples/team_spec.rb +0 -44
  92. data/failing_examples/timeout_behaviour.rb +0 -7
  93. data/init.rb +0 -9
  94. data/lib/autotest/discover.rb +0 -3
  95. data/lib/autotest/rspec.rb +0 -72
  96. data/lib/spec/adapters.rb +0 -1
  97. data/lib/spec/adapters/ruby_engine.rb +0 -26
  98. data/lib/spec/adapters/ruby_engine/mri.rb +0 -8
  99. data/lib/spec/adapters/ruby_engine/rubinius.rb +0 -8
  100. data/lib/spec/example.rb +0 -12
  101. data/lib/spec/example/configuration.rb +0 -158
  102. data/lib/spec/example/errors.rb +0 -9
  103. data/lib/spec/example/example_group.rb +0 -17
  104. data/lib/spec/example/example_group_factory.rb +0 -64
  105. data/lib/spec/example/example_group_methods.rb +0 -440
  106. data/lib/spec/example/example_matcher.rb +0 -44
  107. data/lib/spec/example/example_methods.rb +0 -112
  108. data/lib/spec/example/module_inclusion_warnings.rb +0 -38
  109. data/lib/spec/example/module_reopening_fix.rb +0 -21
  110. data/lib/spec/example/pending.rb +0 -18
  111. data/lib/spec/example/shared_example_group.rb +0 -58
  112. data/lib/spec/expectations/differs/default.rb +0 -66
  113. data/lib/spec/expectations/errors.rb +0 -12
  114. data/lib/spec/expectations/extensions.rb +0 -2
  115. data/lib/spec/expectations/extensions/object.rb +0 -63
  116. data/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
  117. data/lib/spec/expectations/handler.rb +0 -62
  118. data/lib/spec/extensions.rb +0 -4
  119. data/lib/spec/extensions/class.rb +0 -24
  120. data/lib/spec/extensions/main.rb +0 -102
  121. data/lib/spec/extensions/metaclass.rb +0 -7
  122. data/lib/spec/extensions/object.rb +0 -6
  123. data/lib/spec/interop/test.rb +0 -12
  124. data/lib/spec/interop/test/unit/autorunner.rb +0 -6
  125. data/lib/spec/interop/test/unit/testcase.rb +0 -61
  126. data/lib/spec/interop/test/unit/testresult.rb +0 -6
  127. data/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -34
  128. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -61
  129. data/lib/spec/matchers.rb +0 -156
  130. data/lib/spec/matchers/be.rb +0 -224
  131. data/lib/spec/matchers/be_close.rb +0 -37
  132. data/lib/spec/matchers/change.rb +0 -148
  133. data/lib/spec/matchers/eql.rb +0 -43
  134. data/lib/spec/matchers/equal.rb +0 -43
  135. data/lib/spec/matchers/exist.rb +0 -17
  136. data/lib/spec/matchers/has.rb +0 -34
  137. data/lib/spec/matchers/have.rb +0 -149
  138. data/lib/spec/matchers/include.rb +0 -70
  139. data/lib/spec/matchers/match.rb +0 -41
  140. data/lib/spec/matchers/operator_matcher.rb +0 -73
  141. data/lib/spec/matchers/raise_error.rb +0 -132
  142. data/lib/spec/matchers/respond_to.rb +0 -45
  143. data/lib/spec/matchers/satisfy.rb +0 -47
  144. data/lib/spec/matchers/simple_matcher.rb +0 -132
  145. data/lib/spec/matchers/throw_symbol.rb +0 -74
  146. data/lib/spec/mocks.rb +0 -211
  147. data/lib/spec/mocks/argument_constraint_matchers.rb +0 -31
  148. data/lib/spec/mocks/argument_expectation.rb +0 -216
  149. data/lib/spec/mocks/error_generator.rb +0 -84
  150. data/lib/spec/mocks/extensions.rb +0 -1
  151. data/lib/spec/mocks/extensions/object.rb +0 -3
  152. data/lib/spec/mocks/framework.rb +0 -15
  153. data/lib/spec/mocks/message_expectation.rb +0 -290
  154. data/lib/spec/mocks/methods.rb +0 -39
  155. data/lib/spec/mocks/mock.rb +0 -56
  156. data/lib/spec/mocks/order_group.rb +0 -29
  157. data/lib/spec/mocks/proxy.rb +0 -184
  158. data/lib/spec/mocks/space.rb +0 -28
  159. data/lib/spec/mocks/spec_methods.rb +0 -38
  160. data/lib/spec/rake/spectask.rb +0 -227
  161. data/lib/spec/rake/verify_rcov.rb +0 -52
  162. data/lib/spec/runner.rb +0 -201
  163. data/lib/spec/runner/backtrace_tweaker.rb +0 -57
  164. data/lib/spec/runner/class_and_arguments_parser.rb +0 -16
  165. data/lib/spec/runner/command_line.rb +0 -28
  166. data/lib/spec/runner/drb_command_line.rb +0 -20
  167. data/lib/spec/runner/example_group_runner.rb +0 -59
  168. data/lib/spec/runner/formatter/base_formatter.rb +0 -77
  169. data/lib/spec/runner/formatter/base_text_formatter.rb +0 -130
  170. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -27
  171. data/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -20
  172. data/lib/spec/runner/formatter/html_formatter.rb +0 -337
  173. data/lib/spec/runner/formatter/nested_text_formatter.rb +0 -65
  174. data/lib/spec/runner/formatter/profile_formatter.rb +0 -51
  175. data/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -34
  176. data/lib/spec/runner/formatter/snippet_extractor.rb +0 -52
  177. data/lib/spec/runner/formatter/specdoc_formatter.rb +0 -39
  178. data/lib/spec/runner/formatter/story/html_formatter.rb +0 -161
  179. data/lib/spec/runner/formatter/story/plain_text_formatter.rb +0 -188
  180. data/lib/spec/runner/formatter/text_mate_formatter.rb +0 -16
  181. data/lib/spec/runner/heckle_runner.rb +0 -72
  182. data/lib/spec/runner/heckle_runner_unsupported.rb +0 -10
  183. data/lib/spec/runner/option_parser.rb +0 -203
  184. data/lib/spec/runner/options.rb +0 -309
  185. data/lib/spec/runner/reporter.rb +0 -147
  186. data/lib/spec/runner/spec_parser.rb +0 -71
  187. data/lib/spec/story.rb +0 -10
  188. data/lib/spec/story/extensions.rb +0 -3
  189. data/lib/spec/story/extensions/main.rb +0 -86
  190. data/lib/spec/story/extensions/regexp.rb +0 -9
  191. data/lib/spec/story/extensions/string.rb +0 -9
  192. data/lib/spec/story/given_scenario.rb +0 -14
  193. data/lib/spec/story/runner.rb +0 -60
  194. data/lib/spec/story/runner/plain_text_story_runner.rb +0 -48
  195. data/lib/spec/story/runner/scenario_collector.rb +0 -18
  196. data/lib/spec/story/runner/scenario_runner.rb +0 -54
  197. data/lib/spec/story/runner/story_mediator.rb +0 -137
  198. data/lib/spec/story/runner/story_parser.rb +0 -247
  199. data/lib/spec/story/runner/story_runner.rb +0 -70
  200. data/lib/spec/story/scenario.rb +0 -14
  201. data/lib/spec/story/step.rb +0 -70
  202. data/lib/spec/story/step_group.rb +0 -89
  203. data/lib/spec/story/step_mother.rb +0 -37
  204. data/lib/spec/story/story.rb +0 -39
  205. data/lib/spec/story/world.rb +0 -128
  206. data/lib/spec/translator.rb +0 -114
  207. data/lib/spec/version.rb +0 -13
  208. data/plugins/mock_frameworks/flexmock.rb +0 -23
  209. data/plugins/mock_frameworks/mocha.rb +0 -19
  210. data/plugins/mock_frameworks/rr.rb +0 -21
  211. data/plugins/mock_frameworks/rspec.rb +0 -20
  212. data/rake_tasks/examples.rake +0 -7
  213. data/rake_tasks/examples_with_rcov.rake +0 -9
  214. data/rake_tasks/failing_examples_with_html.rake +0 -9
  215. data/rake_tasks/verify_rcov.rake +0 -7
  216. data/spec/README.jruby +0 -15
  217. data/spec/autotest/discover_spec.rb +0 -19
  218. data/spec/autotest/rspec_spec.rb +0 -206
  219. data/spec/autotest_helper.rb +0 -6
  220. data/spec/autotest_matchers.rb +0 -47
  221. data/spec/rspec_suite.rb +0 -7
  222. data/spec/ruby_forker.rb +0 -13
  223. data/spec/spec.opts +0 -6
  224. data/spec/spec/adapters/ruby_engine_spec.rb +0 -16
  225. data/spec/spec/example/configuration_spec.rb +0 -282
  226. data/spec/spec/example/example_group/described_module_spec.rb +0 -20
  227. data/spec/spec/example/example_group/warning_messages_spec.rb +0 -76
  228. data/spec/spec/example/example_group_class_definition_spec.rb +0 -48
  229. data/spec/spec/example/example_group_factory_spec.rb +0 -144
  230. data/spec/spec/example/example_group_methods_spec.rb +0 -572
  231. data/spec/spec/example/example_group_spec.rb +0 -723
  232. data/spec/spec/example/example_matcher_spec.rb +0 -96
  233. data/spec/spec/example/example_methods_spec.rb +0 -126
  234. data/spec/spec/example/example_runner_spec.rb +0 -194
  235. data/spec/spec/example/example_spec.rb +0 -53
  236. data/spec/spec/example/nested_example_group_spec.rb +0 -71
  237. data/spec/spec/example/pending_module_spec.rb +0 -42
  238. data/spec/spec/example/predicate_matcher_spec.rb +0 -21
  239. data/spec/spec/example/shared_example_group_spec.rb +0 -265
  240. data/spec/spec/example/subclassing_example_group_spec.rb +0 -25
  241. data/spec/spec/expectations/differs/default_spec.rb +0 -127
  242. data/spec/spec/expectations/extensions/object_spec.rb +0 -107
  243. data/spec/spec/expectations/fail_with_spec.rb +0 -71
  244. data/spec/spec/extensions/main_spec.rb +0 -76
  245. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
  246. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
  247. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
  248. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
  249. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
  250. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
  251. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
  252. data/spec/spec/interop/test/unit/spec_spec.rb +0 -45
  253. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -14
  254. data/spec/spec/interop/test/unit/testcase_spec.rb +0 -45
  255. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
  256. data/spec/spec/matchers/be_close_spec.rb +0 -39
  257. data/spec/spec/matchers/be_spec.rb +0 -248
  258. data/spec/spec/matchers/change_spec.rb +0 -317
  259. data/spec/spec/matchers/description_generation_spec.rb +0 -153
  260. data/spec/spec/matchers/eql_spec.rb +0 -28
  261. data/spec/spec/matchers/equal_spec.rb +0 -28
  262. data/spec/spec/matchers/exist_spec.rb +0 -57
  263. data/spec/spec/matchers/handler_spec.rb +0 -150
  264. data/spec/spec/matchers/has_spec.rb +0 -53
  265. data/spec/spec/matchers/have_spec.rb +0 -293
  266. data/spec/spec/matchers/include_spec.rb +0 -45
  267. data/spec/spec/matchers/match_spec.rb +0 -37
  268. data/spec/spec/matchers/matcher_methods_spec.rb +0 -78
  269. data/spec/spec/matchers/mock_constraint_matchers_spec.rb +0 -24
  270. data/spec/spec/matchers/operator_matcher_spec.rb +0 -168
  271. data/spec/spec/matchers/raise_error_spec.rb +0 -315
  272. data/spec/spec/matchers/respond_to_spec.rb +0 -54
  273. data/spec/spec/matchers/satisfy_spec.rb +0 -36
  274. data/spec/spec/matchers/simple_matcher_spec.rb +0 -93
  275. data/spec/spec/matchers/throw_symbol_spec.rb +0 -54
  276. data/spec/spec/mocks/any_number_of_times_spec.rb +0 -29
  277. data/spec/spec/mocks/argument_expectation_spec.rb +0 -23
  278. data/spec/spec/mocks/at_least_spec.rb +0 -97
  279. data/spec/spec/mocks/at_most_spec.rb +0 -93
  280. data/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
  281. data/spec/spec/mocks/bug_report_10263_spec.rb +0 -24
  282. data/spec/spec/mocks/bug_report_11545_spec.rb +0 -33
  283. data/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
  284. data/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
  285. data/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
  286. data/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
  287. data/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
  288. data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +0 -130
  289. data/spec/spec/mocks/hash_including_matcher_spec.rb +0 -32
  290. data/spec/spec/mocks/mock_ordering_spec.rb +0 -84
  291. data/spec/spec/mocks/mock_space_spec.rb +0 -54
  292. data/spec/spec/mocks/mock_spec.rb +0 -494
  293. data/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
  294. data/spec/spec/mocks/null_object_mock_spec.rb +0 -40
  295. data/spec/spec/mocks/once_counts_spec.rb +0 -53
  296. data/spec/spec/mocks/options_hash_spec.rb +0 -45
  297. data/spec/spec/mocks/partial_mock_spec.rb +0 -142
  298. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
  299. data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +0 -175
  300. data/spec/spec/mocks/precise_counts_spec.rb +0 -52
  301. data/spec/spec/mocks/record_messages_spec.rb +0 -26
  302. data/spec/spec/mocks/stub_spec.rb +0 -181
  303. data/spec/spec/mocks/twice_counts_spec.rb +0 -67
  304. data/spec/spec/package/bin_spec_spec.rb +0 -14
  305. data/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
  306. data/spec/spec/runner/command_line_spec.rb +0 -147
  307. data/spec/spec/runner/drb_command_line_spec.rb +0 -92
  308. data/spec/spec/runner/empty_file.txt +0 -0
  309. data/spec/spec/runner/examples.txt +0 -2
  310. data/spec/spec/runner/execution_context_spec.rb +0 -37
  311. data/spec/spec/runner/failed.txt +0 -3
  312. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
  313. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
  314. data/spec/spec/runner/formatter/html_formatted-1.8.4.html +0 -365
  315. data/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +0 -387
  316. data/spec/spec/runner/formatter/html_formatted-1.8.5.html +0 -371
  317. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -381
  318. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -370
  319. data/spec/spec/runner/formatter/html_formatter_spec.rb +0 -63
  320. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -333
  321. data/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -65
  322. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -137
  323. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
  324. data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +0 -103
  325. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -158
  326. data/spec/spec/runner/formatter/story/html_formatter_spec.rb +0 -87
  327. data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +0 -548
  328. data/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +0 -365
  329. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -370
  330. data/spec/spec/runner/heckle_runner_spec.rb +0 -78
  331. data/spec/spec/runner/heckler_spec.rb +0 -13
  332. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -45
  333. data/spec/spec/runner/option_parser_spec.rb +0 -394
  334. data/spec/spec/runner/options_spec.rb +0 -450
  335. data/spec/spec/runner/output_one_time_fixture.rb +0 -7
  336. data/spec/spec/runner/output_one_time_fixture_runner.rb +0 -8
  337. data/spec/spec/runner/output_one_time_spec.rb +0 -16
  338. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -56
  339. data/spec/spec/runner/reporter_spec.rb +0 -192
  340. data/spec/spec/runner/resources/a_bar.rb +0 -0
  341. data/spec/spec/runner/resources/a_foo.rb +0 -0
  342. data/spec/spec/runner/resources/a_spec.rb +0 -1
  343. data/spec/spec/runner/spec.opts +0 -2
  344. data/spec/spec/runner/spec_drb.opts +0 -1
  345. data/spec/spec/runner/spec_parser/spec_parser_fixture.rb +0 -70
  346. data/spec/spec/runner/spec_parser_spec.rb +0 -85
  347. data/spec/spec/runner/spec_spaced.opts +0 -2
  348. data/spec/spec/runner_spec.rb +0 -11
  349. data/spec/spec/spec_classes.rb +0 -133
  350. data/spec/spec/story/builders.rb +0 -46
  351. data/spec/spec/story/extensions/main_spec.rb +0 -161
  352. data/spec/spec/story/extensions_spec.rb +0 -14
  353. data/spec/spec/story/given_scenario_spec.rb +0 -27
  354. data/spec/spec/story/runner/plain_text_story_runner_spec.rb +0 -93
  355. data/spec/spec/story/runner/scenario_collector_spec.rb +0 -27
  356. data/spec/spec/story/runner/scenario_runner_spec.rb +0 -214
  357. data/spec/spec/story/runner/story_mediator_spec.rb +0 -143
  358. data/spec/spec/story/runner/story_parser_spec.rb +0 -401
  359. data/spec/spec/story/runner/story_runner_spec.rb +0 -294
  360. data/spec/spec/story/runner_spec.rb +0 -93
  361. data/spec/spec/story/scenario_spec.rb +0 -20
  362. data/spec/spec/story/step_group_spec.rb +0 -157
  363. data/spec/spec/story/step_mother_spec.rb +0 -72
  364. data/spec/spec/story/step_spec.rb +0 -250
  365. data/spec/spec/story/story_helper.rb +0 -2
  366. data/spec/spec/story/story_spec.rb +0 -86
  367. data/spec/spec/story/world_spec.rb +0 -423
  368. data/spec/spec/translator_spec.rb +0 -265
  369. data/spec/spec_helper.rb +0 -103
  370. data/stories/all.rb +0 -5
  371. data/stories/example_groups/autogenerated_docstrings +0 -45
  372. data/stories/example_groups/example_group_with_should_methods +0 -17
  373. data/stories/example_groups/nested_groups +0 -17
  374. data/stories/example_groups/output +0 -25
  375. data/stories/example_groups/stories.rb +0 -7
  376. data/stories/helper.rb +0 -6
  377. data/stories/interop/examples_and_tests_together +0 -30
  378. data/stories/interop/stories.rb +0 -7
  379. data/stories/interop/test_case_with_should_methods +0 -17
  380. data/stories/mock_framework_integration/stories.rb +0 -7
  381. data/stories/mock_framework_integration/use_flexmock.story +0 -9
  382. data/stories/pending_stories/README +0 -3
  383. data/stories/resources/helpers/cmdline.rb +0 -9
  384. data/stories/resources/helpers/story_helper.rb +0 -16
  385. data/stories/resources/matchers/smart_match.rb +0 -37
  386. data/stories/resources/spec/example_group_with_should_methods.rb +0 -12
  387. data/stories/resources/spec/simple_spec.rb +0 -8
  388. data/stories/resources/spec/spec_with_flexmock.rb +0 -18
  389. data/stories/resources/steps/running_rspec.rb +0 -50
  390. data/stories/resources/stories/failing_story.rb +0 -15
  391. data/stories/resources/test/spec_and_test_together.rb +0 -57
  392. data/stories/resources/test/test_case_with_should_methods.rb +0 -30
  393. data/stories/stories/multiline_steps.story +0 -23
  394. data/stories/stories/steps/multiline_steps.rb +0 -13
  395. data/stories/stories/stories.rb +0 -6
@@ -1,72 +0,0 @@
1
- require File.dirname(__FILE__) + '/story_helper'
2
-
3
- module Spec
4
- module Story
5
- describe StepMother do
6
- it 'should store a step by name and type' do
7
- # given
8
- step_mother = StepMother.new
9
- step = Step.new("a given", &lambda {})
10
- step_mother.store(:given, step)
11
-
12
- # when
13
- found = step_mother.find(:given, "a given")
14
-
15
- # then
16
- found.should == step
17
- end
18
-
19
- it 'should NOT raise an error if a step is missing' do
20
- # given
21
- step_mother = StepMother.new
22
-
23
- # then
24
- lambda do
25
- # when
26
- step_mother.find(:given, "doesn't exist")
27
- end.should_not raise_error
28
- end
29
-
30
- it "should create a default step which raises a pending error" do
31
- # given
32
- step_mother = StepMother.new
33
-
34
- # when
35
- step = step_mother.find(:given, "doesn't exist")
36
-
37
- # then
38
- step.should be_an_instance_of(Step)
39
-
40
- lambda do
41
- step.perform(Object.new, "doesn't exist")
42
- end.should raise_error(Spec::Example::ExamplePendingError, /Unimplemented/)
43
- end
44
-
45
- it 'should clear itself' do
46
- # given
47
- step_mother = StepMother.new
48
- step = Step.new("a given") do end
49
- step_mother.store(:given, step)
50
-
51
- # when
52
- step_mother.clear
53
-
54
- # then
55
- step_mother.should be_empty
56
- end
57
-
58
- it "should use assigned steps" do
59
- step_mother = StepMother.new
60
-
61
- step = Step.new('step') {}
62
- step_group = StepGroup.new
63
- step_group.add(:given, step)
64
-
65
- step_mother.use(step_group)
66
-
67
- step_mother.find(:given, "step").should equal(step)
68
- end
69
-
70
- end
71
- end
72
- end
@@ -1,250 +0,0 @@
1
- require File.dirname(__FILE__) + '/story_helper'
2
-
3
- module Spec
4
- module Story
5
- describe Step, "matching" do
6
- it "should match a text string" do
7
- step = Step.new("this text") {}
8
- step.matches?("this text").should be_true
9
- end
10
-
11
- it "should not match a text string that does not start the same" do
12
- step = Step.new("this text") {}
13
- step.matches?("Xthis text").should be_false
14
- end
15
-
16
- it "should not match a text string that does not end the same" do
17
- step = Step.new("this text") {}
18
- step.matches?("this textX").should be_false
19
- end
20
-
21
- it "should match a text string with a param" do
22
- step = Step.new("this $param text") {}
23
- step.matches?("this anything text").should be_true
24
- end
25
-
26
- it "should not be greedy" do
27
- step = Step.new("enter $value for $key") {}
28
- step.parse_args("enter 3 for keys for a piano").should == ['3','keys for a piano']
29
- end
30
-
31
- it "should match a text string with 3 params" do
32
- step = Step.new("1 $one 2 $two 3 $three 4") {}
33
- step.matches?("1 a 2 b 3 c 4").should be_true
34
- end
35
-
36
- it "should match a text string with a param at the beginning" do
37
- step = Step.new("$one 2 3") {}
38
- step.matches?("a 2 3").should be_true
39
- end
40
-
41
- it "should match a text string with a param at the end" do
42
- step = Step.new("1 2 $three") {}
43
- step.matches?("1 2 c").should be_true
44
- end
45
-
46
- it "should match a text string with a dollar sign ($)" do
47
- step = Step.new("show me the $$money") {}
48
- step.matches?("show me the $kwan").should be_true
49
- end
50
-
51
- it "should match a string with an escaped dollar sign" do
52
- step = Step.new("show me the \$money") {}
53
- step.matches?("show me the $kwan").should be_true
54
- end
55
-
56
- it "should not match a different string" do
57
- step = Step.new("this text") {}
58
- step.matches?("other text").should be_false
59
- end
60
-
61
- it "should match a regexp" do
62
- step = Step.new(/this text/) {}
63
- step.matches?("this text").should be_true
64
- end
65
-
66
- it "should match a regexp with a match group" do
67
- step = Step.new(/this (.*) text/) {}
68
- step.matches?("this anything text").should be_true
69
- end
70
-
71
- it "should match a regexp with a named variable" do
72
- step = Step.new(/this $variable text/) {}
73
- step.matches?("this anything text").should be_true
74
- end
75
-
76
- it "should not match a non matching regexp" do
77
- step = Step.new(/this (.*) text/) {}
78
- step.matches?("other anything text").should be_false
79
- end
80
-
81
- it "should not match a non matching regexp with a named variable" do
82
- step = Step.new(/this $variable text/) {}
83
- step.matches?("other anything text").should be_false
84
- end
85
-
86
- it "should not get bogged down by parens in strings" do
87
- step = Step.new("before () after") {}
88
- step.matches?("before () after").should be_true
89
- end
90
-
91
- it "should not get bogged down by regular expression special characters in strings" do
92
- step = Step.new("These characters should work ? ( ) [ ] { } ^ !") {}
93
- step.matches?("These characters should work ? ( ) [ ] { } ^ !").should be_true
94
- end
95
-
96
- it "should match any option of an alteration" do
97
- step = Step.new(/(he|she) is cool/) {}
98
- step.matches?("he is cool").should be_true
99
- step.matches?("she is cool").should be_true
100
- end
101
-
102
- it "should match alteration as well as a variable" do
103
- step = Step.new(/(he|she) is (.*)/) {}
104
- step.matches?("he is cool").should be_true
105
- step.parse_args("he is cool").should == ['he', 'cool']
106
- end
107
-
108
- it "should match alteration as well as a named variable" do
109
- step = Step.new(/(he|she) is $adjective/) {}
110
- step.matches?("he is cool").should be_true
111
- step.parse_args("he is cool").should == ['he', 'cool']
112
- end
113
-
114
- it "should match alteration as well as a anonymous and named variable" do
115
- step = Step.new(/(he|she) is (.*?) $adjective/) {}
116
- step.matches?("he is very cool").should be_true
117
- step.parse_args("he is very cool").should == ['he', 'very', 'cool']
118
- end
119
-
120
- it "should match a regex with a dollar sign ($)" do
121
- step = Step.new(/show me the \$\d+/) {}
122
- step.matches?("show me the $123").should be_true
123
- end
124
-
125
- it "should match a regex with a dollar sign and named variable" do
126
- step = Step.new(/show me the \$$money/) {}
127
- step.matches?("show me the $123").should be_true
128
- end
129
-
130
- it "should match a multiline regex" do
131
- step = Step.new(/.* should have text.$text/) {}
132
- step.matches?(<<TEXT).should be_true
133
- should have text
134
- this is the text
135
- and so is this
136
- TEXT
137
- end
138
-
139
- it "should match the beginning of the string, not the line" do
140
- step = Step.new(/should have text/) {}
141
- step.matches?(<<TEXT).should be_false
142
- whatever
143
- should have text
144
- TEXT
145
- end
146
-
147
- it "should match the end of the string, not the line" do
148
- step = Step.new(/should have text/) {}
149
- step.matches?(<<TEXT).should be_false
150
- should have text
151
- whatever
152
- TEXT
153
- end
154
- end
155
-
156
- describe Step do
157
- it "should be pending with no block" do
158
- step = Step.new("foo")
159
- lambda {
160
- step.perform(Object.new)
161
- }.should raise_error(Spec::Example::ExamplePendingError, "Not Yet Implemented")
162
- end
163
-
164
- it "should perform itself on an object" do
165
- # given
166
- $instance = nil
167
- step = Step.new 'step' do
168
- $instance = self
169
- end
170
- instance = Object.new
171
-
172
- # when
173
- step.perform(instance, "step")
174
-
175
- # then
176
- $instance.should == instance
177
- end
178
-
179
- it "should perform itself with one parameter with match expression" do
180
- # given
181
- $result = nil
182
- step = Step.new 'an account with $count dollars' do |count|
183
- $result = count
184
- end
185
- instance = Object.new
186
-
187
- # when
188
- args = step.parse_args("an account with 3 dollars")
189
- step.perform(instance, *args)
190
-
191
- # then
192
- $result.should == "3"
193
- end
194
-
195
- it "should perform itself with one parameter without a match expression" do
196
- # given
197
- $result = nil
198
- step = Step.new 'an account with a balance of' do |amount|
199
- $result = amount
200
- end
201
- instance = Object.new
202
-
203
- # when
204
- step.perform(instance, 20)
205
-
206
- # then
207
- $result.should == 20
208
- end
209
-
210
- it "should perform itself with 2 parameters" do
211
- # given
212
- $account_type = nil
213
- $amount = nil
214
- step = Step.new 'a $account_type account with $amount dollars' do |account_type, amount|
215
- $account_type = account_type
216
- $amount = amount
217
- end
218
- instance = Object.new
219
-
220
- # when
221
- args = step.parse_args("a savings account with 3 dollars")
222
- step.perform(instance, *args)
223
-
224
- # then
225
- $account_type.should == "savings"
226
- $amount.should == "3"
227
- end
228
-
229
- it "should perform itself when defined with a regexp with 2 parameters" do
230
- # given
231
- $pronoun = nil
232
- $adjective = nil
233
- step = Step.new /(he|she) is (.*)/ do |pronoun, adjective|
234
- $pronoun = pronoun
235
- $adjective = adjective
236
- end
237
- instance = Object.new
238
-
239
- # when
240
- args = step.parse_args("he is cool")
241
- step.perform(instance, *args)
242
-
243
- # then
244
- $pronoun.should == "he"
245
- $adjective.should == "cool"
246
- end
247
-
248
- end
249
- end
250
- end
@@ -1,2 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
2
- require File.dirname(__FILE__) + '/builders'
@@ -1,86 +0,0 @@
1
- require File.dirname(__FILE__) + '/story_helper'
2
-
3
- module Spec
4
- module Story
5
- describe Story do
6
- it 'should run itself in a given object' do
7
- # given
8
- $instance = nil
9
- story = Story.new 'title', 'narrative' do
10
- $instance = self
11
- end
12
- object = Object.new
13
-
14
- # when
15
- story.run_in(object)
16
-
17
- # then
18
- $instance.should be(object)
19
- end
20
-
21
- it 'should not raise an error if no block is supplied' do
22
- # when
23
- error = exception_from do
24
- Story.new 'title', 'narrative'
25
- end
26
-
27
- # then
28
- error.should be_nil
29
- end
30
-
31
- it "should raise an error when an error is raised running in another object" do
32
- #given
33
- story = Story.new 'title', 'narrative' do
34
- raise "this is raised in the story"
35
- end
36
- object = Object.new
37
-
38
- # when/then
39
- lambda do
40
- story.run_in(object)
41
- end.should raise_error
42
- end
43
-
44
- it "should use the steps it is told to using a StepGroup" do
45
- story = Story.new("title", "narrative", :steps_for => steps = StepGroup.new) do end
46
- assignee = mock("assignee")
47
- assignee.should_receive(:use).with(steps)
48
- story.assign_steps_to(assignee)
49
- end
50
-
51
- it "should use the steps it is told to using a key" do
52
- begin
53
- orig_rspec_story_steps = $rspec_story_steps
54
- $rspec_story_steps = StepGroupHash.new
55
- $rspec_story_steps[:foo] = steps = Object.new
56
-
57
- story = Story.new("title", "narrative", :steps_for => :foo) do end
58
- assignee = mock("assignee")
59
-
60
- assignee.should_receive(:use).with(steps)
61
- story.assign_steps_to(assignee)
62
- ensure
63
- $rspec_story_steps = orig_rspec_story_steps
64
- end
65
- end
66
-
67
- it "should use the steps it is told to using multiple keys" do
68
- begin
69
- orig_rspec_story_steps = $rspec_story_steps
70
- $rspec_story_steps = StepGroupHash.new
71
- $rspec_story_steps[:foo] = foo_steps = Object.new
72
- $rspec_story_steps[:bar] = bar_steps = Object.new
73
-
74
- story = Story.new("title", "narrative", :steps_for => [:foo, :bar]) do end
75
- assignee = mock("assignee")
76
-
77
- assignee.should_receive(:use).with(foo_steps)
78
- assignee.should_receive(:use).with(bar_steps)
79
- story.assign_steps_to(assignee)
80
- ensure
81
- $rspec_story_steps = orig_rspec_story_steps
82
- end
83
- end
84
- end
85
- end
86
- end
@@ -1,423 +0,0 @@
1
- require File.dirname(__FILE__) + '/story_helper'
2
-
3
- require 'spec/story'
4
-
5
- module Spec
6
- module Story
7
- describe World do
8
- before :each do
9
- World.listeners.clear
10
- end
11
-
12
- after :each do
13
- World.listeners.clear
14
- World.step_mother.clear
15
- end
16
-
17
- it 'should create an object that mixes in a World' do
18
- # when
19
- obj = World::create
20
-
21
- # then
22
- obj.should be_kind_of(World)
23
- end
24
-
25
- it 'should create a World from any object type' do
26
- # when
27
- obj = World::create String
28
-
29
- # then
30
- obj.should be_kind_of(String)
31
- obj.should be_kind_of(World)
32
- end
33
-
34
- it 'should pass arguments to #new when creating an object of a specified type that mixes in a world' do
35
- # given
36
- Thing = Struct.new(:name, :age)
37
-
38
- # when
39
- obj = World::create Thing, "David", "I'm not telling"
40
-
41
- # then
42
- obj.should be_an_instance_of(Thing)
43
- obj.name.should == "David"
44
- obj.age.should == "I'm not telling"
45
- obj.should be_kind_of(World)
46
- end
47
-
48
- def ensure_world_executes_step(&block)
49
- # given
50
- obj = World::create
51
- $step_ran = false
52
-
53
- # when
54
- obj.instance_eval(&block)
55
-
56
- # then
57
- $step_ran.should be_true
58
- end
59
-
60
- it 'should execute a Given, When or Then step' do
61
- ensure_world_executes_step do
62
- Given 'a given' do
63
- $step_ran = true
64
- end
65
- end
66
-
67
- ensure_world_executes_step do
68
- When 'an event' do
69
- $step_ran = true
70
- end
71
- end
72
-
73
- ensure_world_executes_step do
74
- Then 'an outcome' do
75
- $step_ran = true
76
- end
77
- end
78
- end
79
-
80
- it 'should interpret Given... And... as multiple givens' do
81
- # given
82
- world = World.create
83
- $steps = []
84
-
85
- # when
86
- world.instance_eval do
87
- Given 'step 1' do
88
- $steps << 1
89
- end
90
- And 'step 2' do
91
- $steps << 2
92
- end
93
- end
94
-
95
- # then
96
- $steps.should == [1,2]
97
- World.step_mother.find(:given, 'step 1').should_not be_nil
98
- World.step_mother.find(:given, 'step 2').should_not be_nil
99
- end
100
-
101
- it 'should interpret When... And... as multiple events' do
102
- # given
103
- world = World.create
104
- $steps = []
105
-
106
- # when
107
- world.instance_eval do
108
- When 'step 1' do
109
- $steps << 1
110
- end
111
- And 'step 2' do
112
- $steps << 2
113
- end
114
- end
115
-
116
- # then
117
- $steps.should == [1,2]
118
- World.step_mother.find(:when, 'step 1').should_not be_nil
119
- World.step_mother.find(:when, 'step 2').should_not be_nil
120
- end
121
-
122
- it 'should interpret Then... And... as multiple outcomes' do
123
- # given
124
- world = World.create
125
- $steps = []
126
-
127
- # when
128
- world.instance_eval do
129
- Then 'step 1' do
130
- $steps << 1
131
- end
132
- And 'step 2' do
133
- $steps << 2
134
- end
135
- end
136
-
137
- # then
138
- $steps.should == [1,2]
139
- World.step_mother.find(:then, 'step 1').should_not be_nil
140
- World.step_mother.find(:then, 'step 2').should_not be_nil
141
- end
142
-
143
- it 'should reuse a given across scenarios' do
144
- # given
145
- $num_invoked = 0
146
- a_world = World::create
147
- a_world.instance_eval do
148
- Given 'a given' do
149
- $num_invoked += 1
150
- end
151
- end
152
- another_world = World::create
153
-
154
- # when
155
- another_world.instance_eval do
156
- Given 'a given' # without a body
157
- end
158
-
159
- # then
160
- $num_invoked.should == 2
161
- end
162
-
163
- it 'should reuse an event across scenarios' do
164
- # given
165
- $num_invoked = 0
166
- a_world = World::create
167
- a_world.instance_eval do
168
- When 'an event' do
169
- $num_invoked += 1
170
- end
171
- end
172
-
173
- another_world = World::create
174
-
175
- # when
176
- another_world.instance_eval do
177
- When 'an event' # without a body
178
- end
179
-
180
- # then
181
- $num_invoked.should == 2
182
- end
183
-
184
- it 'should reuse an outcome across scenarios' do
185
- # given
186
- $num_invoked = 0
187
- a_world = World::create
188
- a_world.instance_eval do
189
- Then 'an outcome' do
190
- $num_invoked += 1
191
- end
192
- end
193
-
194
- another_world = World::create
195
-
196
- # when
197
- another_world.instance_eval do
198
- Then 'an outcome' # without a body
199
- end
200
-
201
- # then
202
- $num_invoked.should == 2
203
- end
204
-
205
- it 'should preserve instance variables between steps within a scenario' do
206
- # given
207
- world = World::create
208
- $first = nil
209
- $second = nil
210
-
211
- # when
212
- world.instance_eval do
213
- Given 'given' do
214
- @first = 'first'
215
- end
216
- When 'event' do
217
- @second = @first # from given
218
- end
219
- Then 'outcome' do
220
- $first = @first # from given
221
- $second = @second # from event
222
- end
223
- end
224
-
225
- # then
226
- $first.should == 'first'
227
- $second.should == 'first'
228
- end
229
-
230
- it 'should invoke a reused step in the new object instance' do
231
- # given
232
- $instances = []
233
- $debug = true
234
- world1 = World.create
235
- world1.instance_eval do
236
- Given 'a given' do
237
- $instances << self.__id__
238
- end
239
- end
240
- world2 = World.create
241
-
242
- # when
243
- world2.instance_eval do
244
- Given 'a given' # reused
245
- Then 'an outcome' do
246
- $instances << __id__
247
- end
248
- end
249
- $debug = false
250
- # then
251
- $instances.should == [ world1.__id__, world2.__id__, world2.__id__ ]
252
- end
253
-
254
- def ensure_world_collects_error(expected_error, &block)
255
- # given
256
- world = World.create
257
- # $error = nil
258
-
259
- # when
260
- world.start_collecting_errors
261
- world.instance_eval(&block)
262
-
263
- # then
264
- world.should have(1).errors
265
- world.errors[0].should be_kind_of(expected_error)
266
- end
267
-
268
- it 'should collect a failure from a Given step' do
269
- ensure_world_collects_error RuntimeError do
270
- Given 'a given' do
271
- raise RuntimeError, "oops"
272
- end
273
- end
274
- end
275
-
276
- it 'should collect a failure from a When step' do
277
- ensure_world_collects_error RuntimeError do
278
- When 'an event' do
279
- raise RuntimeError, "oops"
280
- end
281
- end
282
- end
283
-
284
- it 'should collect a failure from a Then step' do
285
- ensure_world_collects_error RuntimeError do
286
- Then 'an outcome' do
287
- raise RuntimeError, "oops"
288
- end
289
- end
290
- end
291
-
292
- it 'should inform listeners when it runs a Given, When or Then step' do
293
- # given
294
- world = World.create
295
- mock_listener1 = mock('listener1')
296
- mock_listener2 = mock('listener2')
297
- World.add_listener(mock_listener1)
298
- World.add_listener(mock_listener2)
299
-
300
- # expect
301
- mock_listener1.should_receive(:step_upcoming).with(:given, 'a context')
302
- mock_listener1.should_receive(:step_succeeded).with(:given, 'a context')
303
- mock_listener1.should_receive(:step_upcoming).with(:when, 'an event')
304
- mock_listener1.should_receive(:step_succeeded).with(:when, 'an event')
305
- mock_listener1.should_receive(:step_upcoming).with(:then, 'an outcome')
306
- mock_listener1.should_receive(:step_succeeded).with(:then, 'an outcome')
307
-
308
- mock_listener2.should_receive(:step_upcoming).with(:given, 'a context')
309
- mock_listener2.should_receive(:step_succeeded).with(:given, 'a context')
310
- mock_listener2.should_receive(:step_upcoming).with(:when, 'an event')
311
- mock_listener2.should_receive(:step_succeeded).with(:when, 'an event')
312
- mock_listener2.should_receive(:step_upcoming).with(:then, 'an outcome')
313
- mock_listener2.should_receive(:step_succeeded).with(:then, 'an outcome')
314
-
315
- # when
316
- world.instance_eval do
317
- Given 'a context' do end
318
- When 'an event' do end
319
- Then 'an outcome' do end
320
- end
321
-
322
- # then
323
- end
324
-
325
- it 'should tell listeners but not execute the step in dry-run mode' do
326
- # given
327
- World.stub!(:dry_run).and_return(true)
328
- mock_listener = mock('listener')
329
- World.add_listener(mock_listener)
330
- $step_invoked = false
331
- world = World.create
332
-
333
- # expect
334
- mock_listener.should_receive(:step_upcoming).with(:given, 'a context')
335
- mock_listener.should_receive(:step_succeeded).with(:given, 'a context')
336
-
337
- # when
338
- world.instance_eval do
339
- Given 'a context' do
340
- $step_invoked = true
341
- end
342
- end
343
-
344
- # then
345
- $step_invoked.should be(false)
346
- end
347
-
348
- it 'should suppress listeners while it runs a GivenScenario' do
349
- # given
350
- $scenario_ran = false
351
-
352
- scenario = ScenarioBuilder.new.name('a scenario').to_scenario do
353
- $scenario_ran = true
354
- Given 'given' do end
355
- When 'event' do end
356
- Then 'outcome' do end
357
- end
358
-
359
- given_scenario = GivenScenario.new('a scenario')
360
- Runner::StoryRunner.should_receive(:scenario_from_current_story).
361
- with('a scenario').and_return(scenario)
362
-
363
- world = World.create
364
- listener = mock('listener')
365
- World.add_listener(listener)
366
-
367
- # expect
368
- listener.should_receive(:found_scenario).with(:'given scenario', 'a scenario')
369
- listener.should_receive(:step_succeeded).never.with(:given, 'given')
370
- listener.should_receive(:step_succeeded).never.with(:when, 'event')
371
- listener.should_receive(:step_succeeded).never.with(:then, 'outcome')
372
-
373
- # when
374
- world.GivenScenario 'a scenario'
375
-
376
- # then
377
- $scenario_ran.should be_true
378
- end
379
-
380
- it 'should interpret GivenScenario... And... as multiple givens' do
381
- # given
382
- world = World.create
383
- $steps = []
384
-
385
- scenario = ScenarioBuilder.new.name('a scenario').to_scenario do
386
- $steps << 1
387
- end
388
- Runner::StoryRunner.should_receive(:scenario_from_current_story).
389
- with('a scenario').and_return(scenario)
390
-
391
- # when
392
- world.instance_eval do
393
- GivenScenario 'a scenario'
394
- And 'step 2' do
395
- $steps << 2
396
- end
397
- end
398
-
399
- # then
400
- $steps.should == [1,2]
401
- World.step_mother.find(:given, 'step 2').should_not be_nil
402
- end
403
-
404
- it 'should provide rspec matchers' do
405
- # given
406
- world = World.create
407
-
408
- # then
409
- world.instance_eval do
410
- 'hello'.should match(/^hello$/)
411
- end
412
- end
413
-
414
- it "should use assigned matchers" do
415
- world = World.create
416
-
417
- World.should_receive(:use).with(steps = Object.new)
418
-
419
- World.use(steps)
420
- end
421
- end
422
- end
423
- end