rspec 0.0.10 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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