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,45 +0,0 @@
1
- module Spec
2
- module Matchers
3
-
4
- class RespondTo #:nodoc:
5
- def initialize(*names)
6
- @names = names
7
- @names_not_responded_to = []
8
- end
9
-
10
- def matches?(target)
11
- @names.each do |name|
12
- unless target.respond_to?(name)
13
- @names_not_responded_to << name
14
- end
15
- end
16
- return @names_not_responded_to.empty?
17
- end
18
-
19
- def failure_message
20
- "expected target to respond to #{@names_not_responded_to.collect {|name| name.inspect }.join(', ')}"
21
- end
22
-
23
- def negative_failure_message
24
- "expected target not to respond to #{@names.collect {|name| name.inspect }.join(', ')}"
25
- end
26
-
27
- def description
28
- "respond to ##{@names.to_s}"
29
- end
30
- end
31
-
32
- # :call-seq:
33
- # should respond_to(*names)
34
- # should_not respond_to(*names)
35
- #
36
- # Matches if the target object responds to all of the names
37
- # provided. Names can be Strings or Symbols.
38
- #
39
- # == Examples
40
- #
41
- def respond_to(*names)
42
- Matchers::RespondTo.new(*names)
43
- end
44
- end
45
- end
@@ -1,47 +0,0 @@
1
- module Spec
2
- module Matchers
3
-
4
- class Satisfy #:nodoc:
5
- def initialize(&block)
6
- @block = block
7
- end
8
-
9
- def matches?(actual, &block)
10
- @block = block if block
11
- @actual = actual
12
- @block.call(actual)
13
- end
14
-
15
- def failure_message
16
- "expected #{@actual} to satisfy block"
17
- end
18
-
19
- def negative_failure_message
20
- "expected #{@actual} not to satisfy block"
21
- end
22
- end
23
-
24
- # :call-seq:
25
- # should satisfy {}
26
- # should_not satisfy {}
27
- #
28
- # Passes if the submitted block returns true. Yields target to the
29
- # block.
30
- #
31
- # Generally speaking, this should be thought of as a last resort when
32
- # you can't find any other way to specify the behaviour you wish to
33
- # specify.
34
- #
35
- # If you do find yourself in such a situation, you could always write
36
- # a custom matcher, which would likely make your specs more expressive.
37
- #
38
- # == Examples
39
- #
40
- # 5.should satisfy { |n|
41
- # n > 3
42
- # }
43
- def satisfy(&block)
44
- Matchers::Satisfy.new(&block)
45
- end
46
- end
47
- end
@@ -1,132 +0,0 @@
1
- module Spec
2
- module Matchers
3
- class SimpleMatcher
4
- attr_writer :failure_message, :negative_failure_message, :description
5
-
6
- def initialize(description, &match_block)
7
- @description = description
8
- @match_block = match_block
9
- end
10
-
11
- def matches?(actual)
12
- @actual = actual
13
- case @match_block.arity
14
- when 2
15
- @match_block.call(@actual, self)
16
- else
17
- @match_block.call(@actual)
18
- end
19
- end
20
-
21
- def description
22
- @description || explanation
23
- end
24
-
25
- def failure_message
26
- @failure_message || (@description.nil? ? explanation : %[expected #{@description.inspect} but got #{@actual.inspect}])
27
- end
28
-
29
- def negative_failure_message
30
- @negative_failure_message || (@description.nil? ? explanation : %[expected not to get #{@description.inspect}, but got #{@actual.inspect}])
31
- end
32
-
33
- def explanation
34
- "No description provided. See RDoc for simple_matcher()"
35
- end
36
- end
37
-
38
- # simple_matcher makes it easy for you to create your own custom matchers
39
- # in just a few lines of code when you don't need all the power of a
40
- # completely custom matcher object.
41
- #
42
- # The <tt>description</tt> argument will appear as part of any failure
43
- # message, and is also the source for auto-generated descriptions.
44
- #
45
- # The <tt>match_block</tt> can have an arity of 1 or 2. The first block
46
- # argument will be the given value. The second, if the block accepts it
47
- # will be the matcher itself, giving you access to set custom failure
48
- # messages in favor of the defaults.
49
- #
50
- # The <tt>match_block</tt> should return a boolean: <tt>true</tt>
51
- # indicates a match, which will pass if you use <tt>should</tt> and fail
52
- # if you use <tt>should_not</tt>. false (or nil) indicates no match,
53
- # which will do the reverse: fail if you use <tt>should</tt> and pass if
54
- # you use <tt>should_not</tt>.
55
- #
56
- # An error in the <tt>match_block</tt> will bubble up, resulting in a
57
- # failure.
58
- #
59
- # == Example with default messages
60
- #
61
- # def be_even
62
- # simple_matcher("an even number") { |given| given % 2 == 0 }
63
- # end
64
- #
65
- # describe 2 do
66
- # it "should be even" do
67
- # 2.should be_even
68
- # end
69
- # end
70
- #
71
- # Given an odd number, this example would produce an error message stating:
72
- # expected "an even number", got 3.
73
- #
74
- # Unfortunately, if you're a fan of auto-generated descriptions, this will
75
- # produce "should an even number." Not the most desirable result. You can
76
- # control that using custom messages:
77
- #
78
- # == Example with custom messages
79
- #
80
- # def rhyme_with(expected)
81
- # simple_matcher("rhyme with #{expected.inspect}") do |given, matcher|
82
- # matcher.failure_message = "expected #{given.inspect} to rhyme with #{expected.inspect}"
83
- # matcher.negative_failure_message = "expected #{given.inspect} not to rhyme with #{expected.inspect}"
84
- # actual.rhymes_with? expected
85
- # end
86
- # end
87
- #
88
- # # OR
89
- #
90
- # def rhyme_with(expected)
91
- # simple_matcher do |given, matcher|
92
- # matcher.description = "rhyme with #{expected.inspect}"
93
- # matcher.failure_message = "expected #{given.inspect} to rhyme with #{expected.inspect}"
94
- # matcher.negative_failure_message = "expected #{given.inspect} not to rhyme with #{expected.inspect}"
95
- # actual.rhymes_with? expected
96
- # end
97
- # end
98
- #
99
- # describe "pecan" do
100
- # it "should rhyme with 'be gone'" do
101
- # nut = "pecan"
102
- # nut.extend Rhymer
103
- # nut.should rhyme_with("be gone")
104
- # end
105
- # end
106
- #
107
- # The resulting messages would be:
108
- # description: rhyme with "be gone"
109
- # failure_message: expected "pecan" to rhyme with "be gone"
110
- # negative failure_message: expected "pecan" not to rhyme with "be gone"
111
- #
112
- # == Wrapped Expectations
113
- #
114
- # Because errors will bubble up, it is possible to wrap other expectations
115
- # in a SimpleMatcher.
116
- #
117
- # def be_even
118
- # simple_matcher("an even number") { |given| (given % 2).should == 0 }
119
- # end
120
- #
121
- # BE VERY CAREFUL when you do this. Only use wrapped expectations for
122
- # matchers that will always be used in only the positive
123
- # (<tt>should</tt>) or negative (<tt>should_not</tt>), but not both.
124
- # The reason is that is you wrap a <tt>should</tt> and call the wrapper
125
- # with <tt>should_not</tt>, the correct result (the <tt>should</tt>
126
- # failing), will fail when you want it to pass.
127
- #
128
- def simple_matcher(description=nil, &match_block)
129
- SimpleMatcher.new(description, &match_block)
130
- end
131
- end
132
- end
@@ -1,74 +0,0 @@
1
- module Spec
2
- module Matchers
3
-
4
- class ThrowSymbol #:nodoc:
5
- def initialize(expected=nil)
6
- @expected = expected
7
- @actual = nil
8
- end
9
-
10
- def matches?(proc)
11
- begin
12
- proc.call
13
- rescue NameError => e
14
- raise e unless e.message =~ /uncaught throw/
15
- @actual = e.name.to_sym
16
- ensure
17
- if @expected.nil?
18
- return @actual.nil? ? false : true
19
- else
20
- return @actual == @expected
21
- end
22
- end
23
- end
24
-
25
- def failure_message
26
- if @actual
27
- "expected #{expected}, got #{@actual.inspect}"
28
- else
29
- "expected #{expected} but nothing was thrown"
30
- end
31
- end
32
-
33
- def negative_failure_message
34
- if @expected
35
- "expected #{expected} not to be thrown"
36
- else
37
- "expected no Symbol, got :#{@actual}"
38
- end
39
- end
40
-
41
- def description
42
- "throw #{expected}"
43
- end
44
-
45
- private
46
-
47
- def expected
48
- @expected.nil? ? "a Symbol" : @expected.inspect
49
- end
50
-
51
- end
52
-
53
- # :call-seq:
54
- # should throw_symbol()
55
- # should throw_symbol(:sym)
56
- # should_not throw_symbol()
57
- # should_not throw_symbol(:sym)
58
- #
59
- # Given a Symbol argument, matches if a proc throws the specified Symbol.
60
- #
61
- # Given no argument, matches if a proc throws any Symbol.
62
- #
63
- # == Examples
64
- #
65
- # lambda { do_something_risky }.should throw_symbol
66
- # lambda { do_something_risky }.should throw_symbol(:that_was_risky)
67
- #
68
- # lambda { do_something_risky }.should_not throw_symbol
69
- # lambda { do_something_risky }.should_not throw_symbol(:that_was_risky)
70
- def throw_symbol(sym=nil)
71
- Matchers::ThrowSymbol.new(sym)
72
- end
73
- end
74
- end
@@ -1,211 +0,0 @@
1
- require 'spec/mocks/framework'
2
- require 'spec/mocks/methods'
3
- require 'spec/mocks/argument_constraint_matchers'
4
- require 'spec/mocks/spec_methods'
5
- require 'spec/mocks/proxy'
6
- require 'spec/mocks/mock'
7
- require 'spec/mocks/argument_expectation'
8
- require 'spec/mocks/message_expectation'
9
- require 'spec/mocks/order_group'
10
- require 'spec/mocks/errors'
11
- require 'spec/mocks/error_generator'
12
- require 'spec/mocks/extensions/object'
13
- require 'spec/mocks/space'
14
-
15
- module Spec
16
- # == Mocks and Stubs
17
- #
18
- # RSpec will create Mock Objects and Stubs for you at runtime, or attach stub/mock behaviour
19
- # to any of your real objects (Partial Mock/Stub). Because the underlying implementation
20
- # for mocks and stubs is the same, you can intermingle mock and stub
21
- # behaviour in either dynamically generated mocks or your pre-existing classes.
22
- # There is a semantic difference in how they are created, however,
23
- # which can help clarify the role it is playing within a given spec.
24
- #
25
- # == Mock Objects
26
- #
27
- # Mocks are objects that allow you to set and verify expectations that they will
28
- # receive specific messages during run time. They are very useful for specifying how the subject of
29
- # the spec interacts with its collaborators. This approach is widely known as "interaction
30
- # testing".
31
- #
32
- # Mocks are also very powerful as a design tool. As you are
33
- # driving the implementation of a given class, Mocks provide an anonymous
34
- # collaborator that can change in behaviour as quickly as you can write an expectation in your
35
- # spec. This flexibility allows you to design the interface of a collaborator that often
36
- # does not yet exist. As the shape of the class being specified becomes more clear, so do the
37
- # requirements for its collaborators - often leading to the discovery of new types that are
38
- # needed in your system.
39
- #
40
- # Read Endo-Testing[http://www.mockobjects.com/files/endotesting.pdf] for a much
41
- # more in depth description of this process.
42
- #
43
- # == Stubs
44
- #
45
- # Stubs are objects that allow you to set "stub" responses to
46
- # messages. As Martin Fowler points out on his site,
47
- # mocks_arent_stubs[http://www.martinfowler.com/articles/mocksArentStubs.html].
48
- # Paraphrasing Fowler's paraphrasing
49
- # of Gerard Meszaros: Stubs provide canned responses to messages they might receive in a test, while
50
- # mocks allow you to specify and, subsquently, verify that certain messages should be received during
51
- # the execution of a test.
52
- #
53
- # == Partial Mocks/Stubs
54
- #
55
- # RSpec also supports partial mocking/stubbing, allowing you to add stub/mock behaviour
56
- # to instances of your existing classes. This is generally
57
- # something to be avoided, because changes to the class can have ripple effects on
58
- # seemingly unrelated specs. When specs fail due to these ripple effects, the fact
59
- # that some methods are being mocked can make it difficult to understand why a
60
- # failure is occurring.
61
- #
62
- # That said, partials do allow you to expect and
63
- # verify interactions with class methods such as +#find+ and +#create+
64
- # on Ruby on Rails model classes.
65
- #
66
- # == Further Reading
67
- #
68
- # There are many different viewpoints about the meaning of mocks and stubs. If you are interested
69
- # in learning more, here is some recommended reading:
70
- #
71
- # * Mock Objects: http://www.mockobjects.com/
72
- # * Endo-Testing: http://www.mockobjects.com/files/endotesting.pdf
73
- # * Mock Roles, Not Objects: http://www.mockobjects.com/files/mockrolesnotobjects.pdf
74
- # * Test Double Patterns: http://xunitpatterns.com/Test%20Double%20Patterns.html
75
- # * Mocks aren't stubs: http://www.martinfowler.com/articles/mocksArentStubs.html
76
- #
77
- # == Creating a Mock
78
- #
79
- # You can create a mock in any specification (or setup) using:
80
- #
81
- # mock(name, options={})
82
- #
83
- # The optional +options+ argument is a +Hash+. Currently the only supported
84
- # option is +:null_object+. Setting this to true instructs the mock to ignore
85
- # any messages it hasn’t been told to expect – and quietly return itself. For example:
86
- #
87
- # mock("person", :null_object => true)
88
- #
89
- # == Creating a Stub
90
- #
91
- # You can create a stub in any specification (or setup) using:
92
- #
93
- # stub(name, stub_methods_and_values_hash)
94
- #
95
- # For example, if you wanted to create an object that always returns
96
- # "More?!?!?!" to "please_sir_may_i_have_some_more" you would do this:
97
- #
98
- # stub("Mr Sykes", :please_sir_may_i_have_some_more => "More?!?!?!")
99
- #
100
- # == Creating a Partial Mock
101
- #
102
- # You don't really "create" a partial mock, you simply add method stubs and/or
103
- # mock expectations to existing classes and objects:
104
- #
105
- # Factory.should_receive(:find).with(id).and_return(value)
106
- # obj.stub!(:to_i).and_return(3)
107
- # etc ...
108
- #
109
- # == Expecting Messages
110
- #
111
- # my_mock.should_receive(:sym)
112
- # my_mock.should_not_receive(:sym)
113
- #
114
- # == Expecting Arguments
115
- #
116
- # my_mock.should_receive(:sym).with(*args)
117
- # my_mock.should_not_receive(:sym).with(*args)
118
- #
119
- # == Argument Constraints using Expression Matchers
120
- #
121
- # Arguments that are passed to #with are compared with actual arguments received
122
- # using == by default. In cases in which you want to specify things about the arguments
123
- # rather than the arguments themselves, you can use any of the Expression Matchers.
124
- # They don't all make syntactic sense (they were primarily designed for use with
125
- # Spec::Expectations), but you are free to create your own custom Spec::Matchers.
126
- #
127
- # Spec::Mocks does provide one additional Matcher method named #ducktype.
128
- #
129
- # In addition, Spec::Mocks adds some keyword Symbols that you can use to
130
- # specify certain kinds of arguments:
131
- #
132
- # my_mock.should_receive(:sym).with(no_args())
133
- # my_mock.should_receive(:sym).with(any_args())
134
- # my_mock.should_receive(:sym).with(1, an_instance_of(Numeric), "b") #2nd argument can any type of Numeric
135
- # my_mock.should_receive(:sym).with(1, boolean(), "b") #2nd argument can true or false
136
- # my_mock.should_receive(:sym).with(1, /abc/, "b") #2nd argument can be any String matching the submitted Regexp
137
- # my_mock.should_receive(:sym).with(1, anything(), "b") #2nd argument can be anything at all
138
- # my_mock.should_receive(:sym).with(1, ducktype(:abs, :div), "b")
139
- # #2nd argument can be object that responds to #abs and #div
140
- #
141
- # == Receive Counts
142
- #
143
- # my_mock.should_receive(:sym).once
144
- # my_mock.should_receive(:sym).twice
145
- # my_mock.should_receive(:sym).exactly(n).times
146
- # my_mock.should_receive(:sym).at_least(:once)
147
- # my_mock.should_receive(:sym).at_least(:twice)
148
- # my_mock.should_receive(:sym).at_least(n).times
149
- # my_mock.should_receive(:sym).at_most(:once)
150
- # my_mock.should_receive(:sym).at_most(:twice)
151
- # my_mock.should_receive(:sym).at_most(n).times
152
- # my_mock.should_receive(:sym).any_number_of_times
153
- #
154
- # == Ordering
155
- #
156
- # my_mock.should_receive(:sym).ordered
157
- # my_mock.should_receive(:other_sym).ordered
158
- # #This will fail if the messages are received out of order
159
- #
160
- # == Setting Reponses
161
- #
162
- # Whether you are setting a mock expectation or a simple stub, you can tell the
163
- # object precisely how to respond:
164
- #
165
- # my_mock.should_receive(:sym).and_return(value)
166
- # my_mock.should_receive(:sym).exactly(3).times.and_return(value1, value2, value3)
167
- # # returns value1 the first time, value2 the second, etc
168
- # my_mock.should_receive(:sym).and_return { ... } #returns value returned by the block
169
- # my_mock.should_receive(:sym).and_raise(error)
170
- # #error can be an instantiated object or a class
171
- # #if it is a class, it must be instantiable with no args
172
- # my_mock.should_receive(:sym).and_throw(:sym)
173
- # my_mock.should_receive(:sym).and_yield(values,to,yield)
174
- # my_mock.should_receive(:sym).and_yield(values,to,yield).and_yield(some,other,values,this,time)
175
- # # for methods that yield to a block multiple times
176
- #
177
- # Any of these responses can be applied to a stub as well, but stubs do
178
- # not support any qualifiers about the message received (i.e. you can't specify arguments
179
- # or receive counts):
180
- #
181
- # my_mock.stub!(:sym).and_return(value)
182
- # my_mock.stub!(:sym).and_return(value1, value2, value3)
183
- # my_mock.stub!(:sym).and_raise(error)
184
- # my_mock.stub!(:sym).and_throw(:sym)
185
- # my_mock.stub!(:sym).and_yield(values,to,yield)
186
- # my_mock.stub!(:sym).and_yield(values,to,yield).and_yield(some,other,values,this,time)
187
- #
188
- # == Arbitrary Handling
189
- #
190
- # Once in a while you'll find that the available expectations don't solve the
191
- # particular problem you are trying to solve. Imagine that you expect the message
192
- # to come with an Array argument that has a specific length, but you don't care
193
- # what is in it. You could do this:
194
- #
195
- # my_mock.should_receive(:sym) do |arg|
196
- # arg.should be_an_istance_of(Array)
197
- # arg.length.should == 7
198
- # end
199
- #
200
- # Note that this would fail if the number of arguments received was different from
201
- # the number of block arguments (in this case 1).
202
- #
203
- # == Combining Expectation Details
204
- #
205
- # Combining the message name with specific arguments, receive counts and responses
206
- # you can get quite a bit of detail in your expectations:
207
- #
208
- # my_mock.should_receive(:<<).with("illegal value").once.and_raise(ArgumentError)
209
- module Mocks
210
- end
211
- end