rspec 1.3.2 → 2.0.0.a2

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 (398) hide show
  1. data/.document +4 -6
  2. data/.gitignore +4 -14
  3. data/License.txt +1 -1
  4. data/README.markdown +46 -0
  5. data/Rakefile +26 -100
  6. data/lib/rspec.rb +4 -0
  7. data/lib/rspec/version.rb +14 -0
  8. data/rspec.gemspec +46 -19
  9. metadata +72 -673
  10. data/.autotest +0 -5
  11. data/Gemfile +0 -20
  12. data/History.rdoc +0 -1560
  13. data/README.rdoc +0 -44
  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/example_spec.rb +0 -4
  21. data/examples/failing/README.txt +0 -11
  22. data/examples/failing/diffing_spec.rb +0 -36
  23. data/examples/failing/failing_implicit_docstrings_example.rb +0 -17
  24. data/examples/failing/failure_in_after.rb +0 -10
  25. data/examples/failing/failure_in_before.rb +0 -10
  26. data/examples/failing/mocking_example.rb +0 -38
  27. data/examples/failing/mocking_with_flexmock.rb +0 -26
  28. data/examples/failing/mocking_with_mocha.rb +0 -25
  29. data/examples/failing/mocking_with_rr.rb +0 -27
  30. data/examples/failing/partial_mock_example.rb +0 -18
  31. data/examples/failing/pending_example.rb +0 -7
  32. data/examples/failing/predicate_example.rb +0 -32
  33. data/examples/failing/raising_example.rb +0 -47
  34. data/examples/failing/syntax_error_example.rb +0 -7
  35. data/examples/failing/team_spec.rb +0 -41
  36. data/examples/failing/timeout_behaviour.rb +0 -5
  37. data/examples/passing/custom_formatter.rb +0 -11
  38. data/examples/passing/custom_matchers.rb +0 -54
  39. data/examples/passing/dynamic_spec.rb +0 -7
  40. data/examples/passing/file_accessor.rb +0 -18
  41. data/examples/passing/file_accessor_spec.rb +0 -37
  42. data/examples/passing/filtered_formatter.rb +0 -17
  43. data/examples/passing/filtered_formatter_example.rb +0 -31
  44. data/examples/passing/greeter_spec.rb +0 -30
  45. data/examples/passing/helper_method_example.rb +0 -12
  46. data/examples/passing/implicit_docstrings_example.rb +0 -16
  47. data/examples/passing/io_processor.rb +0 -8
  48. data/examples/passing/io_processor_spec.rb +0 -20
  49. data/examples/passing/mocking_example.rb +0 -25
  50. data/examples/passing/multi_threaded_example_group_runner.rb +0 -26
  51. data/examples/passing/nested_classes_example.rb +0 -35
  52. data/examples/passing/options_example.rb +0 -29
  53. data/examples/passing/options_formatter.rb +0 -20
  54. data/examples/passing/partial_mock_example.rb +0 -27
  55. data/examples/passing/pending_example.rb +0 -18
  56. data/examples/passing/predicate_example.rb +0 -25
  57. data/examples/passing/shared_example_group_example.rb +0 -43
  58. data/examples/passing/shared_stack_examples.rb +0 -36
  59. data/examples/passing/simple_matcher_example.rb +0 -29
  60. data/examples/passing/stack.rb +0 -36
  61. data/examples/passing/stack_spec.rb +0 -63
  62. data/examples/passing/stack_spec_with_nested_example_groups.rb +0 -66
  63. data/examples/passing/stubbing_example.rb +0 -67
  64. data/examples/passing/yielding_example.rb +0 -31
  65. data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +0 -85
  66. data/features-pending/cli/conditional_exclusion.feature +0 -39
  67. data/features-pending/heckle/heckle.feature +0 -56
  68. data/features/before_and_after_blocks/before_and_after_blocks.feature +0 -167
  69. data/features/command_line/line_number_option.feature +0 -56
  70. data/features/command_line/line_number_option_with_example_with_no_name.feature +0 -22
  71. data/features/example_groups/define_example_attribute.feature +0 -41
  72. data/features/example_groups/example_group_with_should_methods.feature +0 -29
  73. data/features/example_groups/implicit_docstrings.feature +0 -59
  74. data/features/example_groups/nested_groups.feature +0 -32
  75. data/features/expectations/customized_message.feature +0 -54
  76. data/features/expectations/expect_change.feature +0 -65
  77. data/features/expectations/expect_error.feature +0 -44
  78. data/features/extensions/custom_example_group.feature +0 -19
  79. data/features/formatters/custom_formatter.feature +0 -30
  80. data/features/formatters/nested_formatter.feature +0 -32
  81. data/features/interop/cucumber_stubs_dont_leak.feature +0 -11
  82. data/features/interop/examples_and_tests_together.feature +0 -84
  83. data/features/interop/rspec_output.feature +0 -25
  84. data/features/interop/test_but_not_test_unit.feature +0 -26
  85. data/features/interop/test_case_with_should_methods.feature +0 -46
  86. data/features/load_paths/add_lib_to_load_path.feature +0 -20
  87. data/features/load_paths/add_spec_to_load_path.feature +0 -20
  88. data/features/matchers/define_diffable_matcher.feature +0 -26
  89. data/features/matchers/define_matcher.feature +0 -179
  90. data/features/matchers/define_matcher_outside_rspec.feature +0 -37
  91. data/features/matchers/define_matcher_with_fluent_interface.feature +0 -48
  92. data/features/matchers/define_wrapped_matcher.feature +0 -56
  93. data/features/matchers/match_unless_raises.feature +0 -60
  94. data/features/matchers/match_unless_raises_unexpected_error.feature +0 -39
  95. data/features/mock_framework_integration/use_flexmock.feature +0 -27
  96. data/features/mock_framework_integration/use_mocha.feature +0 -27
  97. data/features/mock_framework_integration/use_rr.feature +0 -27
  98. data/features/mocks/block_local_expectations.feature +0 -62
  99. data/features/mocks/mix_stubs_and_mocks.feature +0 -22
  100. data/features/mocks/stub_implementation.feature +0 -26
  101. data/features/pending/pending_examples.feature +0 -81
  102. data/features/runner/specify_line_number.feature +0 -32
  103. data/features/spec_helper/spec_helper.feature +0 -25
  104. data/features/step_definitions/running_rspec_steps.rb +0 -52
  105. data/features/step_definitions/stubbing_steps.rb +0 -16
  106. data/features/subject/explicit_subject.feature +0 -31
  107. data/features/subject/implicit_subject.feature +0 -43
  108. data/features/support/env.rb +0 -83
  109. data/features/support/matchers/smart_match.rb +0 -31
  110. data/init.rb +0 -9
  111. data/lib/autotest/discover.rb +0 -3
  112. data/lib/autotest/rspec.rb +0 -54
  113. data/lib/spec.rb +0 -8
  114. data/lib/spec/adapters/mock_frameworks/flexmock.rb +0 -24
  115. data/lib/spec/adapters/mock_frameworks/mocha.rb +0 -25
  116. data/lib/spec/adapters/mock_frameworks/rr.rb +0 -22
  117. data/lib/spec/adapters/mock_frameworks/rspec.rb +0 -21
  118. data/lib/spec/autorun.rb +0 -3
  119. data/lib/spec/deprecation.rb +0 -41
  120. data/lib/spec/dsl.rb +0 -1
  121. data/lib/spec/dsl/main.rb +0 -93
  122. data/lib/spec/example.rb +0 -164
  123. data/lib/spec/example/args_and_options.rb +0 -27
  124. data/lib/spec/example/before_and_after_hooks.rb +0 -93
  125. data/lib/spec/example/errors.rb +0 -25
  126. data/lib/spec/example/example_group.rb +0 -10
  127. data/lib/spec/example/example_group_factory.rb +0 -82
  128. data/lib/spec/example/example_group_hierarchy.rb +0 -53
  129. data/lib/spec/example/example_group_methods.rb +0 -287
  130. data/lib/spec/example/example_group_proxy.rb +0 -61
  131. data/lib/spec/example/example_matcher.rb +0 -43
  132. data/lib/spec/example/example_methods.rb +0 -152
  133. data/lib/spec/example/example_proxy.rb +0 -41
  134. data/lib/spec/example/module_reopening_fix.rb +0 -43
  135. data/lib/spec/example/pending.rb +0 -18
  136. data/lib/spec/example/predicate_matchers.rb +0 -46
  137. data/lib/spec/example/shared_example_group.rb +0 -59
  138. data/lib/spec/example/subject.rb +0 -114
  139. data/lib/spec/expectations.rb +0 -35
  140. data/lib/spec/expectations/errors.rb +0 -12
  141. data/lib/spec/expectations/extensions.rb +0 -1
  142. data/lib/spec/expectations/extensions/kernel.rb +0 -52
  143. data/lib/spec/expectations/fail_with.rb +0 -45
  144. data/lib/spec/expectations/handler.rb +0 -50
  145. data/lib/spec/extensions/instance_exec.rb +0 -31
  146. data/lib/spec/interop/test.rb +0 -44
  147. data/lib/spec/interop/test/unit/autorunner.rb +0 -6
  148. data/lib/spec/interop/test/unit/testcase.rb +0 -56
  149. data/lib/spec/interop/test/unit/testresult.rb +0 -6
  150. data/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -36
  151. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -61
  152. data/lib/spec/matchers.rb +0 -214
  153. data/lib/spec/matchers/be.rb +0 -249
  154. data/lib/spec/matchers/be_close.rb +0 -32
  155. data/lib/spec/matchers/be_instance_of.rb +0 -26
  156. data/lib/spec/matchers/be_kind_of.rb +0 -26
  157. data/lib/spec/matchers/change.rb +0 -151
  158. data/lib/spec/matchers/compatibility.rb +0 -14
  159. data/lib/spec/matchers/dsl.rb +0 -20
  160. data/lib/spec/matchers/eql.rb +0 -42
  161. data/lib/spec/matchers/equal.rb +0 -53
  162. data/lib/spec/matchers/errors.rb +0 -5
  163. data/lib/spec/matchers/exist.rb +0 -16
  164. data/lib/spec/matchers/generated_descriptions.rb +0 -36
  165. data/lib/spec/matchers/has.rb +0 -35
  166. data/lib/spec/matchers/have.rb +0 -152
  167. data/lib/spec/matchers/include.rb +0 -44
  168. data/lib/spec/matchers/match.rb +0 -21
  169. data/lib/spec/matchers/match_array.rb +0 -71
  170. data/lib/spec/matchers/matcher.rb +0 -132
  171. data/lib/spec/matchers/method_missing.rb +0 -9
  172. data/lib/spec/matchers/operator_matcher.rb +0 -83
  173. data/lib/spec/matchers/pretty.rb +0 -37
  174. data/lib/spec/matchers/raise_exception.rb +0 -131
  175. data/lib/spec/matchers/respond_to.rb +0 -71
  176. data/lib/spec/matchers/satisfy.rb +0 -47
  177. data/lib/spec/matchers/simple_matcher.rb +0 -134
  178. data/lib/spec/matchers/throw_symbol.rb +0 -100
  179. data/lib/spec/matchers/wrap_expectation.rb +0 -55
  180. data/lib/spec/mocks.rb +0 -200
  181. data/lib/spec/mocks/argument_expectation.rb +0 -51
  182. data/lib/spec/mocks/argument_matchers.rb +0 -237
  183. data/lib/spec/mocks/error_generator.rb +0 -92
  184. data/lib/spec/mocks/errors.rb +0 -10
  185. data/lib/spec/mocks/example_methods.rb +0 -69
  186. data/lib/spec/mocks/extensions.rb +0 -1
  187. data/lib/spec/mocks/extensions/object.rb +0 -3
  188. data/lib/spec/mocks/framework.rb +0 -15
  189. data/lib/spec/mocks/message_expectation.rb +0 -344
  190. data/lib/spec/mocks/methods.rb +0 -94
  191. data/lib/spec/mocks/mock.rb +0 -71
  192. data/lib/spec/mocks/order_group.rb +0 -29
  193. data/lib/spec/mocks/proxy.rb +0 -254
  194. data/lib/spec/mocks/space.rb +0 -28
  195. data/lib/spec/rake/spectask.rb +0 -230
  196. data/lib/spec/rake/verify_rcov.rb +0 -52
  197. data/lib/spec/ruby.rb +0 -9
  198. data/lib/spec/runner.rb +0 -66
  199. data/lib/spec/runner/backtrace_tweaker.rb +0 -78
  200. data/lib/spec/runner/class_and_arguments_parser.rb +0 -14
  201. data/lib/spec/runner/command_line.rb +0 -15
  202. data/lib/spec/runner/configuration.rb +0 -202
  203. data/lib/spec/runner/differs/default.rb +0 -93
  204. data/lib/spec/runner/differs/load-diff-lcs.rb +0 -12
  205. data/lib/spec/runner/drb_command_line.rb +0 -32
  206. data/lib/spec/runner/example_group_runner.rb +0 -58
  207. data/lib/spec/runner/extensions/kernel.rb +0 -9
  208. data/lib/spec/runner/formatter/base_formatter.rb +0 -139
  209. data/lib/spec/runner/formatter/base_text_formatter.rb +0 -142
  210. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -25
  211. data/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -20
  212. data/lib/spec/runner/formatter/html_formatter.rb +0 -338
  213. data/lib/spec/runner/formatter/nested_text_formatter.rb +0 -50
  214. data/lib/spec/runner/formatter/no_op_method_missing.rb +0 -21
  215. data/lib/spec/runner/formatter/profile_formatter.rb +0 -47
  216. data/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -33
  217. data/lib/spec/runner/formatter/silent_formatter.rb +0 -10
  218. data/lib/spec/runner/formatter/snippet_extractor.rb +0 -52
  219. data/lib/spec/runner/formatter/specdoc_formatter.rb +0 -33
  220. data/lib/spec/runner/formatter/text_mate_formatter.rb +0 -16
  221. data/lib/spec/runner/heckle_runner.rb +0 -77
  222. data/lib/spec/runner/heckle_runner_unsupported.rb +0 -10
  223. data/lib/spec/runner/line_number_query.rb +0 -78
  224. data/lib/spec/runner/option_parser.rb +0 -225
  225. data/lib/spec/runner/options.rb +0 -406
  226. data/lib/spec/runner/reporter.rb +0 -171
  227. data/lib/spec/stubs/cucumber.rb +0 -5
  228. data/lib/spec/test/unit.rb +0 -10
  229. data/lib/spec/version.rb +0 -14
  230. data/resources/helpers/cmdline.rb +0 -8
  231. data/resources/rake/examples.rake +0 -7
  232. data/resources/rake/examples_with_rcov.rake +0 -9
  233. data/resources/rake/failing_examples_with_html.rake +0 -9
  234. data/resources/rake/verify_rcov.rake +0 -7
  235. data/spec/README.jruby +0 -15
  236. data/spec/autotest/autotest_helper.rb +0 -8
  237. data/spec/autotest/autotest_matchers.rb +0 -38
  238. data/spec/autotest/discover_spec.rb +0 -8
  239. data/spec/autotest/failed_results_re_spec.rb +0 -31
  240. data/spec/autotest/rspec_spec.rb +0 -126
  241. data/spec/ruby_forker.rb +0 -13
  242. data/spec/spec.opts +0 -6
  243. data/spec/spec/dsl/main_spec.rb +0 -103
  244. data/spec/spec/example/example_group_class_definition_spec.rb +0 -51
  245. data/spec/spec/example/example_group_factory_spec.rb +0 -180
  246. data/spec/spec/example/example_group_methods_spec.rb +0 -778
  247. data/spec/spec/example/example_group_proxy_spec.rb +0 -107
  248. data/spec/spec/example/example_group_spec.rb +0 -632
  249. data/spec/spec/example/example_matcher_spec.rb +0 -85
  250. data/spec/spec/example/example_methods_spec.rb +0 -162
  251. data/spec/spec/example/example_proxy_spec.rb +0 -57
  252. data/spec/spec/example/helper_method_spec.rb +0 -24
  253. data/spec/spec/example/nested_example_group_spec.rb +0 -71
  254. data/spec/spec/example/pending_module_spec.rb +0 -58
  255. data/spec/spec/example/predicate_matcher_spec.rb +0 -41
  256. data/spec/spec/example/shared_example_group_spec.rb +0 -257
  257. data/spec/spec/example/subclassing_example_group_spec.rb +0 -25
  258. data/spec/spec/example/subject_spec.rb +0 -110
  259. data/spec/spec/expectations/differs/default_spec.rb +0 -194
  260. data/spec/spec/expectations/extensions/kernel_spec.rb +0 -45
  261. data/spec/spec/expectations/fail_with_spec.rb +0 -96
  262. data/spec/spec/expectations/handler_spec.rb +0 -206
  263. data/spec/spec/expectations/wrap_expectation_spec.rb +0 -31
  264. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
  265. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
  266. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
  267. data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +0 -13
  268. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
  269. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
  270. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
  271. data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +0 -22
  272. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
  273. data/spec/spec/interop/test/unit/spec_spec.rb +0 -48
  274. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -18
  275. data/spec/spec/interop/test/unit/testcase_spec.rb +0 -50
  276. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
  277. data/spec/spec/matchers/be_close_spec.rb +0 -50
  278. data/spec/spec/matchers/be_instance_of_spec.rb +0 -36
  279. data/spec/spec/matchers/be_kind_of_spec.rb +0 -33
  280. data/spec/spec/matchers/be_spec.rb +0 -460
  281. data/spec/spec/matchers/change_spec.rb +0 -349
  282. data/spec/spec/matchers/compatibility_spec.rb +0 -28
  283. data/spec/spec/matchers/description_generation_spec.rb +0 -160
  284. data/spec/spec/matchers/dsl_spec.rb +0 -34
  285. data/spec/spec/matchers/eql_spec.rb +0 -33
  286. data/spec/spec/matchers/equal_spec.rb +0 -57
  287. data/spec/spec/matchers/exist_spec.rb +0 -65
  288. data/spec/spec/matchers/has_spec.rb +0 -190
  289. data/spec/spec/matchers/have_spec.rb +0 -381
  290. data/spec/spec/matchers/include_spec.rb +0 -88
  291. data/spec/spec/matchers/match_array_spec.rb +0 -115
  292. data/spec/spec/matchers/match_spec.rb +0 -57
  293. data/spec/spec/matchers/matcher_spec.rb +0 -289
  294. data/spec/spec/matchers/matchers_spec.rb +0 -2
  295. data/spec/spec/matchers/operator_matcher_spec.rb +0 -191
  296. data/spec/spec/matchers/pretty_spec.rb +0 -22
  297. data/spec/spec/matchers/raise_exception_spec.rb +0 -345
  298. data/spec/spec/matchers/respond_to_spec.rb +0 -116
  299. data/spec/spec/matchers/satisfy_spec.rb +0 -36
  300. data/spec/spec/matchers/simple_matcher_spec.rb +0 -100
  301. data/spec/spec/matchers/throw_symbol_spec.rb +0 -121
  302. data/spec/spec/mocks/and_yield_spec.rb +0 -117
  303. data/spec/spec/mocks/any_number_of_times_spec.rb +0 -36
  304. data/spec/spec/mocks/argument_expectation_spec.rb +0 -23
  305. data/spec/spec/mocks/argument_matchers_spec.rb +0 -19
  306. data/spec/spec/mocks/at_least_spec.rb +0 -97
  307. data/spec/spec/mocks/at_most_spec.rb +0 -93
  308. data/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
  309. data/spec/spec/mocks/bug_report_10263_spec.rb +0 -27
  310. data/spec/spec/mocks/bug_report_1049_spec.rb +0 -30
  311. data/spec/spec/mocks/bug_report_11545_spec.rb +0 -32
  312. data/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
  313. data/spec/spec/mocks/bug_report_496_spec.rb +0 -17
  314. data/spec/spec/mocks/bug_report_600_spec.rb +0 -22
  315. data/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
  316. data/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
  317. data/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
  318. data/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
  319. data/spec/spec/mocks/bug_report_830_spec.rb +0 -21
  320. data/spec/spec/mocks/bug_report_957_spec.rb +0 -22
  321. data/spec/spec/mocks/double_spec.rb +0 -12
  322. data/spec/spec/mocks/failing_argument_matchers_spec.rb +0 -95
  323. data/spec/spec/mocks/hash_including_matcher_spec.rb +0 -90
  324. data/spec/spec/mocks/hash_not_including_matcher_spec.rb +0 -67
  325. data/spec/spec/mocks/mock_ordering_spec.rb +0 -94
  326. data/spec/spec/mocks/mock_space_spec.rb +0 -54
  327. data/spec/spec/mocks/mock_spec.rb +0 -601
  328. data/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
  329. data/spec/spec/mocks/nil_expectation_warning_spec.rb +0 -53
  330. data/spec/spec/mocks/null_object_mock_spec.rb +0 -54
  331. data/spec/spec/mocks/once_counts_spec.rb +0 -53
  332. data/spec/spec/mocks/options_hash_spec.rb +0 -35
  333. data/spec/spec/mocks/partial_mock_spec.rb +0 -164
  334. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
  335. data/spec/spec/mocks/passing_argument_matchers_spec.rb +0 -145
  336. data/spec/spec/mocks/precise_counts_spec.rb +0 -52
  337. data/spec/spec/mocks/record_messages_spec.rb +0 -26
  338. data/spec/spec/mocks/stub_chain_spec.rb +0 -42
  339. data/spec/spec/mocks/stub_implementation_spec.rb +0 -31
  340. data/spec/spec/mocks/stub_spec.rb +0 -203
  341. data/spec/spec/mocks/stubbed_message_expectations_spec.rb +0 -26
  342. data/spec/spec/mocks/twice_counts_spec.rb +0 -67
  343. data/spec/spec/mocks/unstub_spec.rb +0 -127
  344. data/spec/spec/package/bin_spec_spec.rb +0 -16
  345. data/spec/spec/rake/spectask_spec.rb +0 -150
  346. data/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
  347. data/spec/spec/runner/command_line_spec.rb +0 -162
  348. data/spec/spec/runner/configuration_spec.rb +0 -320
  349. data/spec/spec/runner/drb_command_line_spec.rb +0 -146
  350. data/spec/spec/runner/empty_file.txt +0 -0
  351. data/spec/spec/runner/example_group_runner_spec.rb +0 -26
  352. data/spec/spec/runner/examples.txt +0 -2
  353. data/spec/spec/runner/failed.txt +0 -3
  354. data/spec/spec/runner/formatter/base_formatter_spec.rb +0 -30
  355. data/spec/spec/runner/formatter/base_text_formatter_spec.rb +0 -113
  356. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
  357. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
  358. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -377
  359. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -377
  360. data/spec/spec/runner/formatter/html_formatted-1.8.7.html +0 -377
  361. data/spec/spec/runner/formatter/html_formatted-1.9.1.html +0 -377
  362. data/spec/spec/runner/formatter/html_formatted-1.9.2.html +0 -377
  363. data/spec/spec/runner/formatter/html_formatter_spec.rb +0 -118
  364. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -329
  365. data/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -70
  366. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -149
  367. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
  368. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -159
  369. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +0 -371
  370. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -371
  371. data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +0 -371
  372. data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +0 -371
  373. data/spec/spec/runner/formatter/text_mate_formatted-1.9.2.html +0 -371
  374. data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +0 -106
  375. data/spec/spec/runner/heckle_runner_spec.rb +0 -78
  376. data/spec/spec/runner/heckler_spec.rb +0 -20
  377. data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +0 -70
  378. data/spec/spec/runner/line_number_query_spec.rb +0 -129
  379. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -51
  380. data/spec/spec/runner/option_parser_spec.rb +0 -551
  381. data/spec/spec/runner/options_spec.rb +0 -554
  382. data/spec/spec/runner/output_one_time_fixture.rb +0 -7
  383. data/spec/spec/runner/output_one_time_fixture_runner.rb +0 -7
  384. data/spec/spec/runner/output_one_time_spec.rb +0 -15
  385. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -123
  386. data/spec/spec/runner/reporter_spec.rb +0 -244
  387. data/spec/spec/runner/resources/a_bar.rb +0 -0
  388. data/spec/spec/runner/resources/a_foo.rb +0 -0
  389. data/spec/spec/runner/resources/a_spec.rb +0 -1
  390. data/spec/spec/runner/resources/custom_example_group_runner.rb +0 -14
  391. data/spec/spec/runner/resources/utf8_encoded.rb +0 -8
  392. data/spec/spec/runner/spec.opts +0 -2
  393. data/spec/spec/runner/spec_drb.opts +0 -2
  394. data/spec/spec/runner/spec_spaced.opts +0 -2
  395. data/spec/spec/runner_spec.rb +0 -13
  396. data/spec/spec_helper.rb +0 -113
  397. data/spec/support/macros.rb +0 -29
  398. data/spec/support/spec_classes.rb +0 -133
@@ -1,55 +0,0 @@
1
- module Spec
2
- module Matchers
3
- # wraps an expectation in a block that will return true if the
4
- # expectation passes and false if it fails (without bubbling up
5
- # the failure).
6
- #
7
- # This is intended to be used in the context of a simple matcher,
8
- # and is especially useful for wrapping multiple expectations or
9
- # one or more assertions from test/unit extensions when running
10
- # with test/unit.
11
- #
12
- # == Examples
13
- #
14
- # def eat_cheese(cheese)
15
- # simple_matcher do |mouse, matcher|
16
- # matcher.failure_message = "expected #{mouse} to eat cheese"
17
- # wrap_expectation do |matcher|
18
- # assert_eats_cheese(mouse)
19
- # end
20
- # end
21
- # end
22
- #
23
- # describe Mouse do
24
- # it "eats cheese" do
25
- # Mouse.new.should eat_cheese
26
- # end
27
- # end
28
- #
29
- # You might be wondering "why would I do this if I could just say"
30
- # assert_eats_cheese?", a fair question, indeed. You might prefer
31
- # to replace the word assert with something more aligned with the
32
- # rest of your code examples. You are using rspec, after all.
33
- #
34
- # The other benefit you get is that you can use the negative version
35
- # of the matcher:
36
- #
37
- # describe Cat do
38
- # it "does not eat cheese" do
39
- # Cat.new.should_not eat_cheese
40
- # end
41
- # end
42
- #
43
- # So in the event there is no assert_does_not_eat_cheese available,
44
- # you're all set!
45
- def wrap_expectation(matcher, &block)
46
- begin
47
- block.call(matcher)
48
- return true
49
- rescue Exception => e
50
- matcher.failure_message = e.message
51
- return false
52
- end
53
- end
54
- end
55
- end
@@ -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
@@ -1,51 +0,0 @@
1
- module Spec
2
- module Mocks
3
-
4
- class ArgumentExpectation
5
- attr_reader :args
6
-
7
- def initialize(args, &block)
8
- @args = args
9
- @matchers_block = block
10
- @match_any_args = false
11
- @matchers = nil
12
-
13
- if ArgumentMatchers::AnyArgsMatcher === args.first
14
- @match_any_args = true
15
- elsif ArgumentMatchers::NoArgsMatcher === args.first
16
- @matchers = []
17
- else
18
- @matchers = args.collect {|arg| matcher_for(arg)}
19
- end
20
- end
21
-
22
- def matcher_for(arg)
23
- return ArgumentMatchers::MatcherMatcher.new(arg) if is_matcher?(arg)
24
- return ArgumentMatchers::RegexpMatcher.new(arg) if arg.is_a?(Regexp)
25
- return ArgumentMatchers::EqualityProxy.new(arg)
26
- end
27
-
28
- def is_matcher?(obj)
29
- return obj.respond_to?(:matches?) & obj.respond_to?(:description)
30
- end
31
-
32
- def args_match?(given_args)
33
- match_any_args? || matchers_block_matches?(given_args) || matchers_match?(given_args)
34
- end
35
-
36
- def matchers_block_matches?(given_args)
37
- @matchers_block ? @matchers_block.call(*given_args) : nil
38
- end
39
-
40
- def matchers_match?(given_args)
41
- @matchers == given_args
42
- end
43
-
44
- def match_any_args?
45
- @match_any_args
46
- end
47
-
48
- end
49
-
50
- end
51
- end
@@ -1,237 +0,0 @@
1
- module Spec
2
- module Mocks
3
-
4
- # ArgumentMatchers are messages that you can include in message
5
- # expectations to match arguments against a broader check than simple
6
- # equality.
7
- #
8
- # With the exception of any_args() and no_args(), the matchers
9
- # are all positional - they match against the arg in the given position.
10
- module ArgumentMatchers
11
-
12
- class AnyArgsMatcher
13
- def description
14
- "any args"
15
- end
16
- end
17
-
18
- class NoArgsMatcher
19
- def description
20
- "no args"
21
- end
22
- end
23
-
24
- class AnyArgMatcher
25
- def initialize(ignore)
26
- end
27
-
28
- def ==(other)
29
- true
30
- end
31
-
32
- def description
33
- "anything"
34
- end
35
- end
36
-
37
- class RegexpMatcher
38
- def initialize(regexp)
39
- @regexp = regexp
40
- end
41
-
42
- def ==(value)
43
- return value =~ @regexp unless value.is_a?(Regexp)
44
- value == @regexp
45
- end
46
- end
47
-
48
- class BooleanMatcher
49
- def initialize(ignore)
50
- end
51
-
52
- def ==(value)
53
- TrueClass === value || FalseClass === value
54
- end
55
- end
56
-
57
- class HashIncludingMatcher
58
- def initialize(expected)
59
- @expected = expected
60
- end
61
-
62
- def ==(actual)
63
- @expected.each do | key, value |
64
- return false unless actual.has_key?(key) && value == actual[key]
65
- end
66
- true
67
- rescue NoMethodError => ex
68
- return false
69
- end
70
-
71
- def description
72
- "hash_including(#{@expected.inspect.sub(/^\{/,"").sub(/\}$/,"")})"
73
- end
74
- end
75
-
76
- class HashNotIncludingMatcher
77
- def initialize(expected)
78
- @expected = expected
79
- end
80
-
81
- def ==(actual)
82
- @expected.each do | key, value |
83
- return false if actual.has_key?(key) && value == actual[key]
84
- end
85
- true
86
- rescue NoMethodError => ex
87
- return false
88
- end
89
-
90
- def description
91
- "hash_not_including(#{@expected.inspect.sub(/^\{/,"").sub(/\}$/,"")})"
92
- end
93
- end
94
-
95
- class DuckTypeMatcher
96
- def initialize(*methods_to_respond_to)
97
- @methods_to_respond_to = methods_to_respond_to
98
- end
99
-
100
- def ==(value)
101
- @methods_to_respond_to.all? { |sym| value.respond_to?(sym) }
102
- end
103
- end
104
-
105
- class MatcherMatcher
106
- def initialize(matcher)
107
- @matcher = matcher
108
- end
109
-
110
- def ==(value)
111
- @matcher.matches?(value)
112
- end
113
- end
114
-
115
- class EqualityProxy
116
- def initialize(given)
117
- @given = given
118
- end
119
-
120
- def ==(expected)
121
- @given == expected
122
- end
123
- end
124
-
125
- class InstanceOf
126
- def initialize(klass)
127
- @klass = klass
128
- end
129
-
130
- def ==(actual)
131
- actual.instance_of?(@klass)
132
- end
133
- end
134
-
135
- class KindOf
136
- def initialize(klass)
137
- @klass = klass
138
- end
139
-
140
- def ==(actual)
141
- actual.kind_of?(@klass)
142
- end
143
- end
144
-
145
- # :call-seq:
146
- # object.should_receive(:message).with(no_args())
147
- #
148
- # Passes if no arguments are passed along with the message
149
- def no_args
150
- NoArgsMatcher.new
151
- end
152
-
153
- # :call-seq:
154
- # object.should_receive(:message).with(any_args())
155
- #
156
- # Passes if object receives :message with any args at all. This is
157
- # really a more explicit variation of object.should_receive(:message)
158
- def any_args
159
- AnyArgsMatcher.new
160
- end
161
-
162
- # :call-seq:
163
- # object.should_receive(:message).with(anything())
164
- #
165
- # Passes as long as there is an argument.
166
- def anything
167
- AnyArgMatcher.new(nil)
168
- end
169
-
170
- # :call-seq:
171
- # object.should_receive(:message).with(duck_type(:hello))
172
- # object.should_receive(:message).with(duck_type(:hello, :goodbye))
173
- #
174
- # Passes if the argument responds to the specified messages.
175
- #
176
- # == Examples
177
- #
178
- # array = []
179
- # display = mock('display')
180
- # display.should_receive(:present_names).with(duck_type(:length, :each))
181
- # => passes
182
- def duck_type(*args)
183
- DuckTypeMatcher.new(*args)
184
- end
185
-
186
- # :call-seq:
187
- # object.should_receive(:message).with(boolean())
188
- #
189
- # Passes if the argument is boolean.
190
- def boolean
191
- BooleanMatcher.new(nil)
192
- end
193
-
194
- # :call-seq:
195
- # object.should_receive(:message).with(hash_including(:key => val))
196
- # object.should_receive(:message).with(hash_including(:key))
197
- # object.should_receive(:message).with(hash_including(:key, :key2 => val2))
198
- # Passes if the argument is a hash that includes the specified key(s) or key/value
199
- # pairs. If the hash includes other keys, it will still pass.
200
- def hash_including(*args)
201
- HashIncludingMatcher.new(anythingize_lonely_keys(*args))
202
- end
203
-
204
- # :call-seq:
205
- # object.should_receive(:message).with(hash_not_including(:key => val))
206
- # object.should_receive(:message).with(hash_not_including(:key))
207
- # object.should_receive(:message).with(hash_not_including(:key, :key2 => :val2))
208
- #
209
- # Passes if the argument is a hash that doesn't include the specified key(s) or key/value
210
- def hash_not_including(*args)
211
- HashNotIncludingMatcher.new(anythingize_lonely_keys(*args))
212
- end
213
-
214
- # Passes if arg.instance_of?(klass)
215
- def instance_of(klass)
216
- InstanceOf.new(klass)
217
- end
218
-
219
- alias_method :an_instance_of, :instance_of
220
-
221
- # Passes if arg.kind_of?(klass)
222
- def kind_of(klass)
223
- KindOf.new(klass)
224
- end
225
-
226
- alias_method :a_kind_of, :kind_of
227
-
228
- private
229
-
230
- def anythingize_lonely_keys(*args)
231
- hash = args.last.class == Hash ? args.delete_at(-1) : {}
232
- args.each { | arg | hash[arg] = anything }
233
- hash
234
- end
235
- end
236
- end
237
- end