rspec 1.3.0 → 2.0.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 (391) hide show
  1. data/.document +1 -6
  2. data/.gitignore +7 -0
  3. data/Gemfile +6 -0
  4. data/License.txt +1 -1
  5. data/README.markdown +30 -0
  6. data/Rakefile +10 -143
  7. data/lib/rspec/version.rb +5 -0
  8. data/lib/rspec.rb +4 -0
  9. data/rspec.gemspec +29 -0
  10. metadata +69 -462
  11. data/History.rdoc +0 -1529
  12. data/Manifest.txt +0 -384
  13. data/README.rdoc +0 -54
  14. data/Ruby1.9.rdoc +0 -31
  15. data/TODO.txt +0 -17
  16. data/Upgrade.rdoc +0 -260
  17. data/bin/autospec +0 -4
  18. data/bin/spec +0 -5
  19. data/cucumber.yml +0 -5
  20. data/examples/failing/README.txt +0 -11
  21. data/examples/failing/diffing_spec.rb +0 -36
  22. data/examples/failing/failing_implicit_docstrings_example.rb +0 -17
  23. data/examples/failing/failure_in_after.rb +0 -10
  24. data/examples/failing/failure_in_before.rb +0 -10
  25. data/examples/failing/mocking_example.rb +0 -38
  26. data/examples/failing/mocking_with_flexmock.rb +0 -26
  27. data/examples/failing/mocking_with_mocha.rb +0 -25
  28. data/examples/failing/mocking_with_rr.rb +0 -27
  29. data/examples/failing/partial_mock_example.rb +0 -18
  30. data/examples/failing/pending_example.rb +0 -7
  31. data/examples/failing/predicate_example.rb +0 -32
  32. data/examples/failing/raising_example.rb +0 -47
  33. data/examples/failing/syntax_error_example.rb +0 -7
  34. data/examples/failing/team_spec.rb +0 -41
  35. data/examples/failing/timeout_behaviour.rb +0 -5
  36. data/examples/passing/custom_formatter.rb +0 -11
  37. data/examples/passing/custom_matchers.rb +0 -54
  38. data/examples/passing/dynamic_spec.rb +0 -7
  39. data/examples/passing/file_accessor.rb +0 -18
  40. data/examples/passing/file_accessor_spec.rb +0 -37
  41. data/examples/passing/filtered_formatter.rb +0 -17
  42. data/examples/passing/filtered_formatter_example.rb +0 -31
  43. data/examples/passing/greeter_spec.rb +0 -30
  44. data/examples/passing/helper_method_example.rb +0 -12
  45. data/examples/passing/implicit_docstrings_example.rb +0 -16
  46. data/examples/passing/io_processor.rb +0 -8
  47. data/examples/passing/io_processor_spec.rb +0 -20
  48. data/examples/passing/mocking_example.rb +0 -25
  49. data/examples/passing/multi_threaded_example_group_runner.rb +0 -26
  50. data/examples/passing/nested_classes_example.rb +0 -35
  51. data/examples/passing/options_example.rb +0 -29
  52. data/examples/passing/options_formatter.rb +0 -20
  53. data/examples/passing/partial_mock_example.rb +0 -27
  54. data/examples/passing/pending_example.rb +0 -18
  55. data/examples/passing/predicate_example.rb +0 -25
  56. data/examples/passing/shared_example_group_example.rb +0 -79
  57. data/examples/passing/shared_stack_examples.rb +0 -36
  58. data/examples/passing/simple_matcher_example.rb +0 -29
  59. data/examples/passing/stack.rb +0 -36
  60. data/examples/passing/stack_spec.rb +0 -63
  61. data/examples/passing/stack_spec_with_nested_example_groups.rb +0 -66
  62. data/examples/passing/stubbing_example.rb +0 -67
  63. data/examples/passing/yielding_example.rb +0 -31
  64. data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +0 -85
  65. data/features/before_and_after_blocks/before_and_after_blocks.feature +0 -167
  66. data/features/command_line/line_number_option.feature +0 -56
  67. data/features/command_line/line_number_option_with_example_with_no_name.feature +0 -22
  68. data/features/example_groups/define_example_attribute.feature +0 -41
  69. data/features/example_groups/example_group_with_should_methods.feature +0 -29
  70. data/features/example_groups/implicit_docstrings.feature +0 -59
  71. data/features/example_groups/nested_groups.feature +0 -32
  72. data/features/expectations/customized_message.feature +0 -54
  73. data/features/expectations/expect_change.feature +0 -65
  74. data/features/expectations/expect_error.feature +0 -44
  75. data/features/extensions/custom_example_group.feature +0 -19
  76. data/features/formatters/custom_formatter.feature +0 -30
  77. data/features/formatters/nested_formatter.feature +0 -32
  78. data/features/interop/cucumber_stubs_dont_leak.feature +0 -11
  79. data/features/interop/examples_and_tests_together.feature +0 -84
  80. data/features/interop/rspec_output.feature +0 -25
  81. data/features/interop/test_but_not_test_unit.feature +0 -26
  82. data/features/interop/test_case_with_should_methods.feature +0 -46
  83. data/features/load_paths/add_lib_to_load_path.feature +0 -20
  84. data/features/load_paths/add_spec_to_load_path.feature +0 -20
  85. data/features/matchers/define_diffable_matcher.feature +0 -26
  86. data/features/matchers/define_matcher.feature +0 -179
  87. data/features/matchers/define_matcher_outside_rspec.feature +0 -38
  88. data/features/matchers/define_matcher_with_fluent_interface.feature +0 -48
  89. data/features/matchers/define_wrapped_matcher.feature +0 -56
  90. data/features/matchers/match_unless_raises.feature +0 -60
  91. data/features/matchers/match_unless_raises_unexpected_error.feature +0 -39
  92. data/features/mock_framework_integration/use_flexmock.feature +0 -27
  93. data/features/mock_framework_integration/use_mocha.feature +0 -27
  94. data/features/mock_framework_integration/use_rr.feature +0 -27
  95. data/features/mocks/block_local_expectations.feature +0 -62
  96. data/features/mocks/mix_stubs_and_mocks.feature +0 -22
  97. data/features/mocks/stub_implementation.feature +0 -26
  98. data/features/pending/pending_examples.feature +0 -81
  99. data/features/runner/specify_line_number.feature +0 -32
  100. data/features/spec_helper/spec_helper.feature +0 -25
  101. data/features/step_definitions/running_rspec_steps.rb +0 -52
  102. data/features/step_definitions/stubbing_steps.rb +0 -16
  103. data/features/subject/explicit_subject.feature +0 -31
  104. data/features/subject/implicit_subject.feature +0 -43
  105. data/features/support/env.rb +0 -83
  106. data/features/support/matchers/smart_match.rb +0 -31
  107. data/geminstaller.yml +0 -28
  108. data/init.rb +0 -9
  109. data/lib/autotest/discover.rb +0 -3
  110. data/lib/autotest/rspec.rb +0 -54
  111. data/lib/spec/adapters/mock_frameworks/flexmock.rb +0 -24
  112. data/lib/spec/adapters/mock_frameworks/mocha.rb +0 -25
  113. data/lib/spec/adapters/mock_frameworks/rr.rb +0 -22
  114. data/lib/spec/adapters/mock_frameworks/rspec.rb +0 -21
  115. data/lib/spec/autorun.rb +0 -3
  116. data/lib/spec/deprecation.rb +0 -40
  117. data/lib/spec/dsl/main.rb +0 -92
  118. data/lib/spec/dsl.rb +0 -1
  119. data/lib/spec/example/args_and_options.rb +0 -27
  120. data/lib/spec/example/before_and_after_hooks.rb +0 -93
  121. data/lib/spec/example/errors.rb +0 -25
  122. data/lib/spec/example/example_group.rb +0 -10
  123. data/lib/spec/example/example_group_factory.rb +0 -82
  124. data/lib/spec/example/example_group_hierarchy.rb +0 -53
  125. data/lib/spec/example/example_group_methods.rb +0 -282
  126. data/lib/spec/example/example_group_proxy.rb +0 -61
  127. data/lib/spec/example/example_matcher.rb +0 -43
  128. data/lib/spec/example/example_methods.rb +0 -152
  129. data/lib/spec/example/example_proxy.rb +0 -41
  130. data/lib/spec/example/module_reopening_fix.rb +0 -43
  131. data/lib/spec/example/pending.rb +0 -18
  132. data/lib/spec/example/predicate_matchers.rb +0 -46
  133. data/lib/spec/example/shared_example_group.rb +0 -59
  134. data/lib/spec/example/subject.rb +0 -108
  135. data/lib/spec/example.rb +0 -164
  136. data/lib/spec/expectations/errors.rb +0 -12
  137. data/lib/spec/expectations/extensions/kernel.rb +0 -52
  138. data/lib/spec/expectations/extensions.rb +0 -1
  139. data/lib/spec/expectations/fail_with.rb +0 -45
  140. data/lib/spec/expectations/handler.rb +0 -50
  141. data/lib/spec/expectations.rb +0 -35
  142. data/lib/spec/extensions/instance_exec.rb +0 -31
  143. data/lib/spec/interop/test/unit/autorunner.rb +0 -6
  144. data/lib/spec/interop/test/unit/testcase.rb +0 -56
  145. data/lib/spec/interop/test/unit/testresult.rb +0 -6
  146. data/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -34
  147. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -61
  148. data/lib/spec/interop/test.rb +0 -44
  149. data/lib/spec/matchers/be.rb +0 -249
  150. data/lib/spec/matchers/be_close.rb +0 -32
  151. data/lib/spec/matchers/be_instance_of.rb +0 -26
  152. data/lib/spec/matchers/be_kind_of.rb +0 -26
  153. data/lib/spec/matchers/change.rb +0 -151
  154. data/lib/spec/matchers/compatibility.rb +0 -14
  155. data/lib/spec/matchers/dsl.rb +0 -20
  156. data/lib/spec/matchers/eql.rb +0 -42
  157. data/lib/spec/matchers/equal.rb +0 -53
  158. data/lib/spec/matchers/errors.rb +0 -5
  159. data/lib/spec/matchers/exist.rb +0 -16
  160. data/lib/spec/matchers/generated_descriptions.rb +0 -36
  161. data/lib/spec/matchers/has.rb +0 -35
  162. data/lib/spec/matchers/have.rb +0 -152
  163. data/lib/spec/matchers/include.rb +0 -44
  164. data/lib/spec/matchers/match.rb +0 -21
  165. data/lib/spec/matchers/match_array.rb +0 -71
  166. data/lib/spec/matchers/matcher.rb +0 -132
  167. data/lib/spec/matchers/method_missing.rb +0 -9
  168. data/lib/spec/matchers/operator_matcher.rb +0 -78
  169. data/lib/spec/matchers/pretty.rb +0 -37
  170. data/lib/spec/matchers/raise_exception.rb +0 -131
  171. data/lib/spec/matchers/respond_to.rb +0 -71
  172. data/lib/spec/matchers/satisfy.rb +0 -47
  173. data/lib/spec/matchers/simple_matcher.rb +0 -133
  174. data/lib/spec/matchers/throw_symbol.rb +0 -100
  175. data/lib/spec/matchers/wrap_expectation.rb +0 -55
  176. data/lib/spec/matchers.rb +0 -214
  177. data/lib/spec/mocks/argument_expectation.rb +0 -51
  178. data/lib/spec/mocks/argument_matchers.rb +0 -237
  179. data/lib/spec/mocks/error_generator.rb +0 -92
  180. data/lib/spec/mocks/errors.rb +0 -10
  181. data/lib/spec/mocks/example_methods.rb +0 -69
  182. data/lib/spec/mocks/extensions/object.rb +0 -3
  183. data/lib/spec/mocks/extensions.rb +0 -1
  184. data/lib/spec/mocks/framework.rb +0 -15
  185. data/lib/spec/mocks/message_expectation.rb +0 -344
  186. data/lib/spec/mocks/methods.rb +0 -94
  187. data/lib/spec/mocks/mock.rb +0 -71
  188. data/lib/spec/mocks/order_group.rb +0 -29
  189. data/lib/spec/mocks/proxy.rb +0 -266
  190. data/lib/spec/mocks/space.rb +0 -28
  191. data/lib/spec/mocks.rb +0 -200
  192. data/lib/spec/rake/spectask.rb +0 -230
  193. data/lib/spec/rake/verify_rcov.rb +0 -52
  194. data/lib/spec/ruby.rb +0 -9
  195. data/lib/spec/runner/backtrace_tweaker.rb +0 -77
  196. data/lib/spec/runner/class_and_arguments_parser.rb +0 -14
  197. data/lib/spec/runner/command_line.rb +0 -15
  198. data/lib/spec/runner/configuration.rb +0 -194
  199. data/lib/spec/runner/differs/default.rb +0 -93
  200. data/lib/spec/runner/differs/load-diff-lcs.rb +0 -12
  201. data/lib/spec/runner/drb_command_line.rb +0 -32
  202. data/lib/spec/runner/example_group_runner.rb +0 -58
  203. data/lib/spec/runner/extensions/kernel.rb +0 -9
  204. data/lib/spec/runner/formatter/base_formatter.rb +0 -139
  205. data/lib/spec/runner/formatter/base_text_formatter.rb +0 -142
  206. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -25
  207. data/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -20
  208. data/lib/spec/runner/formatter/html_formatter.rb +0 -338
  209. data/lib/spec/runner/formatter/nested_text_formatter.rb +0 -50
  210. data/lib/spec/runner/formatter/no_op_method_missing.rb +0 -21
  211. data/lib/spec/runner/formatter/profile_formatter.rb +0 -47
  212. data/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -33
  213. data/lib/spec/runner/formatter/silent_formatter.rb +0 -10
  214. data/lib/spec/runner/formatter/snippet_extractor.rb +0 -52
  215. data/lib/spec/runner/formatter/specdoc_formatter.rb +0 -33
  216. data/lib/spec/runner/formatter/text_mate_formatter.rb +0 -16
  217. data/lib/spec/runner/heckle_runner.rb +0 -72
  218. data/lib/spec/runner/heckle_runner_unsupported.rb +0 -10
  219. data/lib/spec/runner/line_number_query.rb +0 -78
  220. data/lib/spec/runner/option_parser.rb +0 -225
  221. data/lib/spec/runner/options.rb +0 -405
  222. data/lib/spec/runner/reporter.rb +0 -171
  223. data/lib/spec/runner.rb +0 -66
  224. data/lib/spec/stubs/cucumber.rb +0 -5
  225. data/lib/spec/test/unit.rb +0 -10
  226. data/lib/spec/version.rb +0 -14
  227. data/lib/spec.rb +0 -8
  228. data/resources/helpers/cmdline.rb +0 -8
  229. data/resources/rake/examples.rake +0 -7
  230. data/resources/rake/examples_with_rcov.rake +0 -9
  231. data/resources/rake/failing_examples_with_html.rake +0 -9
  232. data/resources/rake/verify_rcov.rake +0 -7
  233. data/spec/README.jruby +0 -15
  234. data/spec/autotest/autotest_helper.rb +0 -8
  235. data/spec/autotest/autotest_matchers.rb +0 -38
  236. data/spec/autotest/discover_spec.rb +0 -8
  237. data/spec/autotest/failed_results_re_spec.rb +0 -31
  238. data/spec/autotest/rspec_spec.rb +0 -126
  239. data/spec/ruby_forker.rb +0 -13
  240. data/spec/spec/dsl/main_spec.rb +0 -95
  241. data/spec/spec/example/example_group_class_definition_spec.rb +0 -51
  242. data/spec/spec/example/example_group_factory_spec.rb +0 -180
  243. data/spec/spec/example/example_group_methods_spec.rb +0 -759
  244. data/spec/spec/example/example_group_proxy_spec.rb +0 -107
  245. data/spec/spec/example/example_group_spec.rb +0 -643
  246. data/spec/spec/example/example_matcher_spec.rb +0 -86
  247. data/spec/spec/example/example_methods_spec.rb +0 -162
  248. data/spec/spec/example/example_proxy_spec.rb +0 -57
  249. data/spec/spec/example/helper_method_spec.rb +0 -24
  250. data/spec/spec/example/nested_example_group_spec.rb +0 -71
  251. data/spec/spec/example/pending_module_spec.rb +0 -58
  252. data/spec/spec/example/predicate_matcher_spec.rb +0 -41
  253. data/spec/spec/example/shared_example_group_spec.rb +0 -257
  254. data/spec/spec/example/subclassing_example_group_spec.rb +0 -25
  255. data/spec/spec/example/subject_spec.rb +0 -103
  256. data/spec/spec/expectations/differs/default_spec.rb +0 -194
  257. data/spec/spec/expectations/extensions/kernel_spec.rb +0 -45
  258. data/spec/spec/expectations/fail_with_spec.rb +0 -96
  259. data/spec/spec/expectations/handler_spec.rb +0 -206
  260. data/spec/spec/expectations/wrap_expectation_spec.rb +0 -30
  261. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
  262. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
  263. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
  264. data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +0 -13
  265. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
  266. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
  267. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
  268. data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +0 -22
  269. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
  270. data/spec/spec/interop/test/unit/spec_spec.rb +0 -48
  271. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -18
  272. data/spec/spec/interop/test/unit/testcase_spec.rb +0 -50
  273. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
  274. data/spec/spec/matchers/be_close_spec.rb +0 -50
  275. data/spec/spec/matchers/be_instance_of_spec.rb +0 -36
  276. data/spec/spec/matchers/be_kind_of_spec.rb +0 -33
  277. data/spec/spec/matchers/be_spec.rb +0 -460
  278. data/spec/spec/matchers/change_spec.rb +0 -349
  279. data/spec/spec/matchers/compatibility_spec.rb +0 -28
  280. data/spec/spec/matchers/description_generation_spec.rb +0 -160
  281. data/spec/spec/matchers/dsl_spec.rb +0 -34
  282. data/spec/spec/matchers/eql_spec.rb +0 -33
  283. data/spec/spec/matchers/equal_spec.rb +0 -57
  284. data/spec/spec/matchers/exist_spec.rb +0 -65
  285. data/spec/spec/matchers/has_spec.rb +0 -190
  286. data/spec/spec/matchers/have_spec.rb +0 -396
  287. data/spec/spec/matchers/include_spec.rb +0 -88
  288. data/spec/spec/matchers/match_array_spec.rb +0 -108
  289. data/spec/spec/matchers/match_spec.rb +0 -57
  290. data/spec/spec/matchers/matcher_spec.rb +0 -289
  291. data/spec/spec/matchers/matchers_spec.rb +0 -2
  292. data/spec/spec/matchers/operator_matcher_spec.rb +0 -191
  293. data/spec/spec/matchers/raise_exception_spec.rb +0 -345
  294. data/spec/spec/matchers/respond_to_spec.rb +0 -116
  295. data/spec/spec/matchers/satisfy_spec.rb +0 -36
  296. data/spec/spec/matchers/simple_matcher_spec.rb +0 -93
  297. data/spec/spec/matchers/throw_symbol_spec.rb +0 -121
  298. data/spec/spec/mocks/and_yield_spec.rb +0 -117
  299. data/spec/spec/mocks/any_number_of_times_spec.rb +0 -36
  300. data/spec/spec/mocks/argument_expectation_spec.rb +0 -23
  301. data/spec/spec/mocks/argument_matchers_spec.rb +0 -19
  302. data/spec/spec/mocks/at_least_spec.rb +0 -97
  303. data/spec/spec/mocks/at_most_spec.rb +0 -93
  304. data/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
  305. data/spec/spec/mocks/bug_report_10263_spec.rb +0 -27
  306. data/spec/spec/mocks/bug_report_11545_spec.rb +0 -32
  307. data/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
  308. data/spec/spec/mocks/bug_report_496_spec.rb +0 -19
  309. data/spec/spec/mocks/bug_report_600_spec.rb +0 -22
  310. data/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
  311. data/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
  312. data/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
  313. data/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
  314. data/spec/spec/mocks/bug_report_830_spec.rb +0 -21
  315. data/spec/spec/mocks/double_spec.rb +0 -12
  316. data/spec/spec/mocks/failing_argument_matchers_spec.rb +0 -95
  317. data/spec/spec/mocks/hash_including_matcher_spec.rb +0 -90
  318. data/spec/spec/mocks/hash_not_including_matcher_spec.rb +0 -67
  319. data/spec/spec/mocks/mock_ordering_spec.rb +0 -94
  320. data/spec/spec/mocks/mock_space_spec.rb +0 -54
  321. data/spec/spec/mocks/mock_spec.rb +0 -594
  322. data/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
  323. data/spec/spec/mocks/nil_expectation_warning_spec.rb +0 -53
  324. data/spec/spec/mocks/null_object_mock_spec.rb +0 -54
  325. data/spec/spec/mocks/once_counts_spec.rb +0 -53
  326. data/spec/spec/mocks/options_hash_spec.rb +0 -35
  327. data/spec/spec/mocks/partial_mock_spec.rb +0 -164
  328. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
  329. data/spec/spec/mocks/passing_argument_matchers_spec.rb +0 -145
  330. data/spec/spec/mocks/precise_counts_spec.rb +0 -52
  331. data/spec/spec/mocks/record_messages_spec.rb +0 -26
  332. data/spec/spec/mocks/stub_chain_spec.rb +0 -42
  333. data/spec/spec/mocks/stub_implementation_spec.rb +0 -31
  334. data/spec/spec/mocks/stub_spec.rb +0 -203
  335. data/spec/spec/mocks/stubbed_message_expectations_spec.rb +0 -26
  336. data/spec/spec/mocks/twice_counts_spec.rb +0 -67
  337. data/spec/spec/mocks/unstub_spec.rb +0 -127
  338. data/spec/spec/package/bin_spec_spec.rb +0 -16
  339. data/spec/spec/rake/spectask_spec.rb +0 -150
  340. data/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
  341. data/spec/spec/runner/command_line_spec.rb +0 -162
  342. data/spec/spec/runner/configuration_spec.rb +0 -320
  343. data/spec/spec/runner/drb_command_line_spec.rb +0 -146
  344. data/spec/spec/runner/empty_file.txt +0 -0
  345. data/spec/spec/runner/example_group_runner_spec.rb +0 -26
  346. data/spec/spec/runner/examples.txt +0 -2
  347. data/spec/spec/runner/failed.txt +0 -3
  348. data/spec/spec/runner/formatter/base_formatter_spec.rb +0 -30
  349. data/spec/spec/runner/formatter/base_text_formatter_spec.rb +0 -113
  350. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
  351. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
  352. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -377
  353. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -377
  354. data/spec/spec/runner/formatter/html_formatted-1.8.7.html +0 -377
  355. data/spec/spec/runner/formatter/html_formatted-1.9.1.html +0 -377
  356. data/spec/spec/runner/formatter/html_formatter_spec.rb +0 -118
  357. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -329
  358. data/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -70
  359. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -149
  360. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
  361. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -159
  362. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +0 -371
  363. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -371
  364. data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +0 -371
  365. data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +0 -371
  366. data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +0 -106
  367. data/spec/spec/runner/heckle_runner_spec.rb +0 -78
  368. data/spec/spec/runner/heckler_spec.rb +0 -20
  369. data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +0 -70
  370. data/spec/spec/runner/line_number_query_spec.rb +0 -129
  371. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -51
  372. data/spec/spec/runner/option_parser_spec.rb +0 -551
  373. data/spec/spec/runner/options_spec.rb +0 -554
  374. data/spec/spec/runner/output_one_time_fixture.rb +0 -7
  375. data/spec/spec/runner/output_one_time_fixture_runner.rb +0 -7
  376. data/spec/spec/runner/output_one_time_spec.rb +0 -15
  377. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -123
  378. data/spec/spec/runner/reporter_spec.rb +0 -244
  379. data/spec/spec/runner/resources/a_bar.rb +0 -0
  380. data/spec/spec/runner/resources/a_foo.rb +0 -0
  381. data/spec/spec/runner/resources/a_spec.rb +0 -1
  382. data/spec/spec/runner/resources/custom_example_group_runner.rb +0 -14
  383. data/spec/spec/runner/resources/utf8_encoded.rb +0 -8
  384. data/spec/spec/runner/spec.opts +0 -2
  385. data/spec/spec/runner/spec_drb.opts +0 -2
  386. data/spec/spec/runner/spec_spaced.opts +0 -2
  387. data/spec/spec/runner_spec.rb +0 -13
  388. data/spec/spec.opts +0 -6
  389. data/spec/spec_helper.rb +0 -112
  390. data/spec/support/macros.rb +0 -29
  391. data/spec/support/spec_classes.rb +0 -133
@@ -1,266 +0,0 @@
1
- module Spec
2
- module Mocks
3
- class Proxy
4
- DEFAULT_OPTIONS = {
5
- :null_object => false,
6
- }
7
-
8
- @@warn_about_expectations_on_nil = true
9
-
10
- def self.allow_message_expectations_on_nil
11
- @@warn_about_expectations_on_nil = false
12
-
13
- # ensure nil.rspec_verify is called even if an expectation is not set in the example
14
- # otherwise the allowance would effect subsequent examples
15
- $rspec_mocks.add(nil) unless $rspec_mocks.nil?
16
- end
17
-
18
- def initialize(target, name=nil, options={})
19
- @target = target
20
- @name = name
21
- @error_generator = ErrorGenerator.new target, name, options
22
- @expectation_ordering = OrderGroup.new @error_generator
23
- @expectations = []
24
- @messages_received = []
25
- @stubs = []
26
- @proxied_methods = []
27
- @options = options ? DEFAULT_OPTIONS.dup.merge(options) : DEFAULT_OPTIONS
28
- @already_proxied_respond_to = false
29
- end
30
-
31
- def null_object?
32
- @options[:null_object]
33
- end
34
-
35
- def as_null_object
36
- @options[:null_object] = true
37
- @target
38
- end
39
-
40
- def add_message_expectation(expected_from, sym, opts={}, &block)
41
- __add sym
42
- warn_if_nil_class sym
43
- @expectations << build_expectation(expected_from, sym, opts, &block)
44
- @expectations.last
45
- end
46
-
47
- def build_expectation(expected_from, sym, opts, &block)
48
- if stub = find_matching_method_stub(sym)
49
- stub.build_child(expected_from, block_given?? block : nil, 1, opts)
50
- else
51
- MessageExpectation.new(@error_generator, @expectation_ordering, expected_from, sym, block_given? ? block : nil, 1, opts)
52
- end
53
- end
54
-
55
- def add_negative_message_expectation(expected_from, sym, &block)
56
- __add sym
57
- warn_if_nil_class sym
58
- @expectations << NegativeMessageExpectation.new(@error_generator, @expectation_ordering, expected_from, sym, block_given? ? block : nil)
59
- @expectations.last
60
- end
61
-
62
- def add_stub(expected_from, sym, opts={}, &implementation)
63
- __add sym
64
- @stubs.unshift MessageExpectation.new(@error_generator, @expectation_ordering, expected_from, sym, nil, :any, opts, &implementation)
65
- @stubs.first
66
- end
67
-
68
- def remove_stub(message)
69
- message = message.to_sym
70
- if stub_to_remove = @stubs.detect { |s| s.matches_name?(message) }
71
- reset_proxied_method(message)
72
- @stubs.delete(stub_to_remove)
73
- else
74
- raise MockExpectationError, "The method `#{message}` was not stubbed or was already unstubbed"
75
- end
76
- end
77
-
78
- def verify #:nodoc:
79
- verify_expectations
80
- ensure
81
- reset
82
- end
83
-
84
- def reset
85
- clear_expectations
86
- clear_stubs
87
- reset_proxied_methods
88
- clear_proxied_methods
89
- reset_nil_expectations_warning
90
- end
91
-
92
- def received_message?(sym, *args, &block)
93
- @messages_received.any? {|array| array == [sym, args, block]}
94
- end
95
-
96
- def has_negative_expectation?(sym)
97
- @expectations.any? {|expectation| expectation.negative_expectation_for?(sym)}
98
- end
99
-
100
- def record_message_received(sym, args, block)
101
- @messages_received << [sym, args, block]
102
- end
103
-
104
- def message_received(sym, *args, &block)
105
- expectation = find_matching_expectation(sym, *args)
106
- stub = find_matching_method_stub(sym, *args)
107
-
108
- if ok_to_invoke_stub?(stub, expectation)
109
- record_stub(stub, sym, args, &block)
110
- elsif expectation
111
- invoke_expectation(expectation, *args, &block)
112
- elsif expectation = find_almost_matching_expectation(sym, *args)
113
- record_almost_matching_expectation(expectation, sym, *args, &block)
114
- else
115
- @target.__send__ :method_missing, sym, *args, &block
116
- end
117
- end
118
-
119
- def record_stub(stub, sym, args, &block)
120
- almost_matching_expectation(sym, *args) do |e|
121
- e.advise(args, block)
122
- end
123
- stub.invoke(*args, &block)
124
- end
125
-
126
- def invoke_expectation(expectation, *args, &block)
127
- expectation.invoke(*args, &block)
128
- end
129
-
130
- def record_almost_matching_expectation(expectation, sym, *args, &block)
131
- expectation.advise(args, block)
132
- unless (null_object? or has_negative_expectation?(sym))
133
- raise_unexpected_message_args_error(expectation, *args)
134
- end
135
- end
136
-
137
- def ok_to_invoke_stub?(stub, expectation)
138
- stub && (!expectation || expectation.called_max_times?)
139
- end
140
-
141
- def raise_unexpected_message_args_error(expectation, *args)
142
- @error_generator.raise_unexpected_message_args_error expectation, *args
143
- end
144
-
145
- def raise_unexpected_message_error(sym, *args)
146
- @error_generator.raise_unexpected_message_error sym, *args
147
- end
148
-
149
- def find_matching_method_stub(sym, *args)
150
- @stubs.find {|stub| stub.matches(sym, args)}
151
- end
152
-
153
- private
154
-
155
- def __add(sym)
156
- $rspec_mocks.add(@target) unless $rspec_mocks.nil?
157
- define_expected_method(sym)
158
- end
159
-
160
- def warn_if_nil_class(sym)
161
- if proxy_for_nil_class? & @@warn_about_expectations_on_nil
162
- Kernel.warn("An expectation of :#{sym} was set on nil. Called from #{caller[2]}. Use allow_message_expectations_on_nil to disable warnings.")
163
- end
164
- end
165
-
166
- def define_expected_method(sym)
167
- unless @proxied_methods.include?(sym)
168
- visibility_string = "#{visibility(sym)} :#{sym}"
169
- if target_responds_to?(sym)
170
- munged_sym = munge(sym)
171
- target_metaclass.instance_eval do
172
- alias_method munged_sym, sym if method_defined?(sym)
173
- end
174
- @proxied_methods << sym
175
- end
176
- target_metaclass.class_eval(<<-EOF, __FILE__, __LINE__)
177
- def #{sym}(*args, &block)
178
- __mock_proxy.message_received :#{sym}, *args, &block
179
- end
180
- #{visibility_string}
181
- EOF
182
- end
183
- end
184
-
185
- def target_responds_to?(sym)
186
- return @target.__send__(munge(:respond_to?),sym) if @already_proxied_respond_to
187
- return @already_proxied_respond_to = true if sym == :respond_to?
188
- return @target.respond_to?(sym, true)
189
- end
190
-
191
- def visibility(sym)
192
- if Mock === @target
193
- 'public'
194
- elsif target_metaclass.private_method_defined?(sym)
195
- 'private'
196
- elsif target_metaclass.protected_method_defined?(sym)
197
- 'protected'
198
- else
199
- 'public'
200
- end
201
- end
202
-
203
- def munge(sym)
204
- "proxied_by_rspec__#{sym}"
205
- end
206
-
207
- def clear_expectations
208
- @expectations.clear
209
- end
210
-
211
- def clear_stubs
212
- @stubs.clear
213
- end
214
-
215
- def clear_proxied_methods
216
- @proxied_methods.clear
217
- end
218
-
219
- def target_metaclass
220
- class << @target; self; end
221
- end
222
-
223
- def verify_expectations
224
- @expectations.map {|e| e.verify_messages_received}
225
- end
226
-
227
- def reset_proxied_methods
228
- @proxied_methods.map {|sym| reset_proxied_method(sym)}
229
- end
230
-
231
- def reset_proxied_method(sym)
232
- munged_sym = munge(sym)
233
- target_metaclass.instance_eval do
234
- remove_method sym
235
- if method_defined?(munged_sym)
236
- alias_method sym, munged_sym
237
- remove_method munged_sym
238
- end
239
- end
240
- end
241
-
242
- def proxy_for_nil_class?
243
- @target.nil?
244
- end
245
-
246
- def reset_nil_expectations_warning
247
- @@warn_about_expectations_on_nil = true if proxy_for_nil_class?
248
- end
249
-
250
- def find_matching_expectation(sym, *args)
251
- @expectations.find {|expectation| expectation.matches(sym, args) && !expectation.called_max_times?} ||
252
- @expectations.find {|expectation| expectation.matches(sym, args)}
253
- end
254
-
255
- def almost_matching_expectation(sym, *args, &block)
256
- if e = find_almost_matching_expectation(sym, *args)
257
- yield e
258
- end
259
- end
260
-
261
- def find_almost_matching_expectation(sym, *args)
262
- @expectations.find {|expectation| expectation.matches_name_but_not_args(sym, args)}
263
- end
264
- end
265
- end
266
- end
@@ -1,28 +0,0 @@
1
- module Spec
2
- module Mocks
3
- class Space
4
- def add(obj)
5
- mocks << obj unless mocks.detect {|m| m.equal? obj}
6
- end
7
-
8
- def verify_all
9
- mocks.each do |mock|
10
- mock.rspec_verify
11
- end
12
- end
13
-
14
- def reset_all
15
- mocks.each do |mock|
16
- mock.rspec_reset
17
- end
18
- mocks.clear
19
- end
20
-
21
- private
22
-
23
- def mocks
24
- @mocks ||= []
25
- end
26
- end
27
- end
28
- end
data/lib/spec/mocks.rb DELETED
@@ -1,200 +0,0 @@
1
- require 'spec/mocks/framework'
2
- require 'spec/mocks/extensions/object'
3
-
4
- module Spec
5
- # == Mocks and Stubs
6
- #
7
- # RSpec will create Mock Objects and Stubs for you at runtime, or attach stub/mock behaviour
8
- # to any of your real objects (Partial Mock/Stub). Because the underlying implementation
9
- # for mocks and stubs is the same, you can intermingle mock and stub
10
- # behaviour in either dynamically generated mocks or your pre-existing classes.
11
- # There is a semantic difference in how they are created, however,
12
- # which can help clarify the role it is playing within a given spec.
13
- #
14
- # == Mock Objects
15
- #
16
- # Mocks are objects that allow you to set and verify expectations that they will
17
- # receive specific messages during run time. They are very useful for specifying how the subject of
18
- # the spec interacts with its collaborators. This approach is widely known as "interaction
19
- # testing".
20
- #
21
- # Mocks are also very powerful as a design tool. As you are
22
- # driving the implementation of a given class, Mocks provide an anonymous
23
- # collaborator that can change in behaviour as quickly as you can write an expectation in your
24
- # spec. This flexibility allows you to design the interface of a collaborator that often
25
- # does not yet exist. As the shape of the class being specified becomes more clear, so do the
26
- # requirements for its collaborators - often leading to the discovery of new types that are
27
- # needed in your system.
28
- #
29
- # Read Endo-Testing[http://www.mockobjects.com/files/endotesting.pdf] for a much
30
- # more in depth description of this process.
31
- #
32
- # == Stubs
33
- #
34
- # Stubs are objects that allow you to set "stub" responses to
35
- # messages. As Martin Fowler points out on his site,
36
- # mocks_arent_stubs[http://www.martinfowler.com/articles/mocksArentStubs.html].
37
- # Paraphrasing Fowler's paraphrasing
38
- # of Gerard Meszaros: Stubs provide canned responses to messages they might receive in a test, while
39
- # mocks allow you to specify and, subsquently, verify that certain messages should be received during
40
- # the execution of a test.
41
- #
42
- # == Partial Mocks/Stubs
43
- #
44
- # RSpec also supports partial mocking/stubbing, allowing you to add stub/mock behaviour
45
- # to instances of your existing classes. This is generally
46
- # something to be avoided, because changes to the class can have ripple effects on
47
- # seemingly unrelated specs. When specs fail due to these ripple effects, the fact
48
- # that some methods are being mocked can make it difficult to understand why a
49
- # failure is occurring.
50
- #
51
- # That said, partials do allow you to expect and
52
- # verify interactions with class methods such as +#find+ and +#create+
53
- # on Ruby on Rails model classes.
54
- #
55
- # == Further Reading
56
- #
57
- # There are many different viewpoints about the meaning of mocks and stubs. If you are interested
58
- # in learning more, here is some recommended reading:
59
- #
60
- # * Mock Objects: http://www.mockobjects.com/
61
- # * Endo-Testing: http://www.mockobjects.com/files/endotesting.pdf
62
- # * Mock Roles, Not Objects: http://www.mockobjects.com/files/mockrolesnotobjects.pdf
63
- # * Test Double Patterns: http://xunitpatterns.com/Test%20Double%20Patterns.html
64
- # * Mocks aren't stubs: http://www.martinfowler.com/articles/mocksArentStubs.html
65
- #
66
- # == Creating a Mock
67
- #
68
- # You can create a mock in any specification (or setup) using:
69
- #
70
- # mock(name, options={})
71
- #
72
- # The optional +options+ argument is a +Hash+. Currently the only supported
73
- # option is +:null_object+. Setting this to true instructs the mock to ignore
74
- # any messages it hasn’t been told to expect – and quietly return itself. For example:
75
- #
76
- # mock("person", :null_object => true)
77
- #
78
- # == Creating a Stub
79
- #
80
- # You can create a stub in any specification (or setup) using:
81
- #
82
- # stub(name, stub_methods_and_values_hash)
83
- #
84
- # For example, if you wanted to create an object that always returns
85
- # "More?!?!?!" to "please_sir_may_i_have_some_more" you would do this:
86
- #
87
- # stub("Mr Sykes", :please_sir_may_i_have_some_more => "More?!?!?!")
88
- #
89
- # == Creating a Partial Mock
90
- #
91
- # You don't really "create" a partial mock, you simply add method stubs and/or
92
- # mock expectations to existing classes and objects:
93
- #
94
- # Factory.should_receive(:find).with(id).and_return(value)
95
- # obj.stub!(:to_i).and_return(3)
96
- # etc ...
97
- #
98
- # == Expecting Messages
99
- #
100
- # my_mock.should_receive(:sym)
101
- # my_mock.should_not_receive(:sym)
102
- #
103
- # == Expecting Arguments
104
- #
105
- # my_mock.should_receive(:sym).with(*args)
106
- # my_mock.should_not_receive(:sym).with(*args)
107
- #
108
- # == Argument Matchers
109
- #
110
- # Arguments that are passed to #with are compared with actual arguments received
111
- # using == by default. In cases in which you want to specify things about the arguments
112
- # rather than the arguments themselves, you can use any of RSpec's Expression Matchers.
113
- # They don't all make syntactic sense (they were primarily designed for use with
114
- # Spec::Expectations), but you are free to create your own custom Spec::Matchers.
115
- #
116
- # Spec::Mocks does provide one additional Matcher method named #ducktype.
117
- #
118
- # In addition, Spec::Mocks adds some keyword Symbols that you can use to
119
- # specify certain kinds of arguments:
120
- #
121
- # my_mock.should_receive(:sym).with(no_args())
122
- # my_mock.should_receive(:sym).with(any_args())
123
- # my_mock.should_receive(:sym).with(1, kind_of(Numeric), "b") #2nd argument can any kind of Numeric
124
- # my_mock.should_receive(:sym).with(1, boolean(), "b") #2nd argument can true or false
125
- # my_mock.should_receive(:sym).with(1, /abc/, "b") #2nd argument can be any String matching the submitted Regexp
126
- # my_mock.should_receive(:sym).with(1, anything(), "b") #2nd argument can be anything at all
127
- # my_mock.should_receive(:sym).with(1, ducktype(:abs, :div), "b")
128
- # #2nd argument can be object that responds to #abs and #div
129
- #
130
- # == Receive Counts
131
- #
132
- # my_mock.should_receive(:sym).once
133
- # my_mock.should_receive(:sym).twice
134
- # my_mock.should_receive(:sym).exactly(n).times
135
- # my_mock.should_receive(:sym).at_least(:once)
136
- # my_mock.should_receive(:sym).at_least(:twice)
137
- # my_mock.should_receive(:sym).at_least(n).times
138
- # my_mock.should_receive(:sym).at_most(:once)
139
- # my_mock.should_receive(:sym).at_most(:twice)
140
- # my_mock.should_receive(:sym).at_most(n).times
141
- # my_mock.should_receive(:sym).any_number_of_times
142
- #
143
- # == Ordering
144
- #
145
- # my_mock.should_receive(:sym).ordered
146
- # my_mock.should_receive(:other_sym).ordered
147
- # #This will fail if the messages are received out of order
148
- #
149
- # == Setting Reponses
150
- #
151
- # Whether you are setting a mock expectation or a simple stub, you can tell the
152
- # object precisely how to respond:
153
- #
154
- # my_mock.should_receive(:sym).and_return(value)
155
- # my_mock.should_receive(:sym).exactly(3).times.and_return(value1, value2, value3)
156
- # # returns value1 the first time, value2 the second, etc
157
- # my_mock.should_receive(:sym).and_return { ... } #returns value returned by the block
158
- # my_mock.should_receive(:sym).and_raise(error)
159
- # #error can be an instantiated object or a class
160
- # #if it is a class, it must be instantiable with no args
161
- # my_mock.should_receive(:sym).and_throw(:sym)
162
- # my_mock.should_receive(:sym).and_yield(values,to,yield)
163
- # my_mock.should_receive(:sym).and_yield(values,to,yield).and_yield(some,other,values,this,time)
164
- # # for methods that yield to a block multiple times
165
- #
166
- # Any of these responses can be applied to a stub as well, but stubs do
167
- # not support any qualifiers about the message received (i.e. you can't specify arguments
168
- # or receive counts):
169
- #
170
- # my_mock.stub!(:sym).and_return(value)
171
- # my_mock.stub!(:sym).and_return(value1, value2, value3)
172
- # my_mock.stub!(:sym).and_raise(error)
173
- # my_mock.stub!(:sym).and_throw(:sym)
174
- # my_mock.stub!(:sym).and_yield(values,to,yield)
175
- # my_mock.stub!(:sym).and_yield(values,to,yield).and_yield(some,other,values,this,time)
176
- #
177
- # == Arbitrary Handling
178
- #
179
- # Once in a while you'll find that the available expectations don't solve the
180
- # particular problem you are trying to solve. Imagine that you expect the message
181
- # to come with an Array argument that has a specific length, but you don't care
182
- # what is in it. You could do this:
183
- #
184
- # my_mock.should_receive(:sym) do |arg|
185
- # arg.should be_an_istance_of(Array)
186
- # arg.length.should == 7
187
- # end
188
- #
189
- # Note that this would fail if the number of arguments received was different from
190
- # the number of block arguments (in this case 1).
191
- #
192
- # == Combining Expectation Details
193
- #
194
- # Combining the message name with specific arguments, receive counts and responses
195
- # you can get quite a bit of detail in your expectations:
196
- #
197
- # my_mock.should_receive(:<<).with("illegal value").once.and_raise(ArgumentError)
198
- module Mocks
199
- end
200
- end