ageweke-rspec 1.2.9

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 (378) hide show
  1. data/.document +7 -0
  2. data/History.rdoc +1496 -0
  3. data/License.txt +22 -0
  4. data/Manifest.txt +377 -0
  5. data/README.rdoc +55 -0
  6. data/Rakefile +145 -0
  7. data/Ruby1.9.rdoc +31 -0
  8. data/TODO.txt +17 -0
  9. data/Upgrade.rdoc +199 -0
  10. data/bin/autospec +4 -0
  11. data/bin/spec +5 -0
  12. data/cucumber.yml +5 -0
  13. data/examples/failing/README.txt +11 -0
  14. data/examples/failing/diffing_spec.rb +36 -0
  15. data/examples/failing/failing_implicit_docstrings_example.rb +17 -0
  16. data/examples/failing/failure_in_after.rb +10 -0
  17. data/examples/failing/failure_in_before.rb +10 -0
  18. data/examples/failing/mocking_example.rb +38 -0
  19. data/examples/failing/mocking_with_flexmock.rb +26 -0
  20. data/examples/failing/mocking_with_mocha.rb +25 -0
  21. data/examples/failing/mocking_with_rr.rb +27 -0
  22. data/examples/failing/partial_mock_example.rb +18 -0
  23. data/examples/failing/pending_example.rb +7 -0
  24. data/examples/failing/predicate_example.rb +32 -0
  25. data/examples/failing/raising_example.rb +47 -0
  26. data/examples/failing/syntax_error_example.rb +7 -0
  27. data/examples/failing/team_spec.rb +41 -0
  28. data/examples/failing/timeout_behaviour.rb +5 -0
  29. data/examples/passing/custom_formatter.rb +11 -0
  30. data/examples/passing/custom_matchers.rb +54 -0
  31. data/examples/passing/dynamic_spec.rb +7 -0
  32. data/examples/passing/file_accessor.rb +18 -0
  33. data/examples/passing/file_accessor_spec.rb +37 -0
  34. data/examples/passing/filtered_formatter.rb +17 -0
  35. data/examples/passing/filtered_formatter_example.rb +31 -0
  36. data/examples/passing/greeter_spec.rb +30 -0
  37. data/examples/passing/helper_method_example.rb +12 -0
  38. data/examples/passing/implicit_docstrings_example.rb +16 -0
  39. data/examples/passing/io_processor.rb +8 -0
  40. data/examples/passing/io_processor_spec.rb +20 -0
  41. data/examples/passing/mocking_example.rb +25 -0
  42. data/examples/passing/multi_threaded_example_group_runner.rb +26 -0
  43. data/examples/passing/nested_classes_example.rb +35 -0
  44. data/examples/passing/options_example.rb +29 -0
  45. data/examples/passing/options_formatter.rb +20 -0
  46. data/examples/passing/partial_mock_example.rb +27 -0
  47. data/examples/passing/pending_example.rb +18 -0
  48. data/examples/passing/predicate_example.rb +25 -0
  49. data/examples/passing/shared_example_group_example.rb +79 -0
  50. data/examples/passing/shared_stack_examples.rb +36 -0
  51. data/examples/passing/simple_matcher_example.rb +29 -0
  52. data/examples/passing/stack.rb +36 -0
  53. data/examples/passing/stack_spec.rb +63 -0
  54. data/examples/passing/stack_spec_with_nested_example_groups.rb +66 -0
  55. data/examples/passing/stubbing_example.rb +67 -0
  56. data/examples/passing/yielding_example.rb +31 -0
  57. data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +85 -0
  58. data/features/before_and_after_blocks/before_and_after_blocks.feature +167 -0
  59. data/features/command_line/line_number_option.feature +56 -0
  60. data/features/command_line/line_number_option_with_example_with_no_name.feature +22 -0
  61. data/features/example_groups/define_example_attribute.feature +41 -0
  62. data/features/example_groups/example_group_with_should_methods.feature +29 -0
  63. data/features/example_groups/implicit_docstrings.feature +59 -0
  64. data/features/example_groups/nested_groups.feature +32 -0
  65. data/features/expectations/customized_message.feature +54 -0
  66. data/features/expectations/expect_change.feature +65 -0
  67. data/features/expectations/expect_error.feature +44 -0
  68. data/features/extensions/custom_example_group.feature +19 -0
  69. data/features/formatters/custom_formatter.feature +30 -0
  70. data/features/interop/examples_and_tests_together.feature +84 -0
  71. data/features/interop/rspec_output.feature +25 -0
  72. data/features/interop/test_but_not_test_unit.feature +26 -0
  73. data/features/interop/test_case_with_should_methods.feature +46 -0
  74. data/features/load_paths/add_lib_to_load_path.feature +20 -0
  75. data/features/load_paths/add_spec_to_load_path.feature +20 -0
  76. data/features/matchers/define_diffable_matcher.feature +26 -0
  77. data/features/matchers/define_matcher.feature +179 -0
  78. data/features/matchers/define_matcher_outside_rspec.feature +38 -0
  79. data/features/matchers/define_matcher_with_fluent_interface.feature +27 -0
  80. data/features/matchers/define_wrapped_matcher.feature +29 -0
  81. data/features/mock_framework_integration/use_flexmock.feature +27 -0
  82. data/features/mock_framework_integration/use_mocha.feature +27 -0
  83. data/features/mock_framework_integration/use_rr.feature +27 -0
  84. data/features/mocks/mix_stubs_and_mocks.feature +22 -0
  85. data/features/mocks/stub_implementation.feature +26 -0
  86. data/features/pending/pending_examples.feature +81 -0
  87. data/features/runner/specify_line_number.feature +32 -0
  88. data/features/spec_helper/spec_helper.feature +25 -0
  89. data/features/step_definitions/running_rspec_steps.rb +43 -0
  90. data/features/subject/explicit_subject.feature +31 -0
  91. data/features/subject/implicit_subject.feature +43 -0
  92. data/features/support/env.rb +82 -0
  93. data/features/support/matchers/smart_match.rb +12 -0
  94. data/init.rb +9 -0
  95. data/lib/autotest/discover.rb +3 -0
  96. data/lib/autotest/rspec.rb +47 -0
  97. data/lib/spec.rb +8 -0
  98. data/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
  99. data/lib/spec/adapters/mock_frameworks/mocha.rb +25 -0
  100. data/lib/spec/adapters/mock_frameworks/rr.rb +22 -0
  101. data/lib/spec/adapters/mock_frameworks/rspec.rb +21 -0
  102. data/lib/spec/autorun.rb +3 -0
  103. data/lib/spec/deprecation.rb +40 -0
  104. data/lib/spec/dsl.rb +1 -0
  105. data/lib/spec/dsl/main.rb +92 -0
  106. data/lib/spec/example.rb +164 -0
  107. data/lib/spec/example/args_and_options.rb +27 -0
  108. data/lib/spec/example/before_and_after_hooks.rb +93 -0
  109. data/lib/spec/example/errors.rb +25 -0
  110. data/lib/spec/example/example_group.rb +10 -0
  111. data/lib/spec/example/example_group_factory.rb +82 -0
  112. data/lib/spec/example/example_group_hierarchy.rb +53 -0
  113. data/lib/spec/example/example_group_methods.rb +282 -0
  114. data/lib/spec/example/example_group_proxy.rb +61 -0
  115. data/lib/spec/example/example_matcher.rb +43 -0
  116. data/lib/spec/example/example_methods.rb +148 -0
  117. data/lib/spec/example/example_proxy.rb +41 -0
  118. data/lib/spec/example/module_reopening_fix.rb +43 -0
  119. data/lib/spec/example/pending.rb +18 -0
  120. data/lib/spec/example/predicate_matchers.rb +46 -0
  121. data/lib/spec/example/shared_example_group.rb +59 -0
  122. data/lib/spec/example/subject.rb +108 -0
  123. data/lib/spec/expectations.rb +35 -0
  124. data/lib/spec/expectations/errors.rb +12 -0
  125. data/lib/spec/expectations/extensions.rb +1 -0
  126. data/lib/spec/expectations/extensions/kernel.rb +52 -0
  127. data/lib/spec/expectations/fail_with.rb +45 -0
  128. data/lib/spec/expectations/handler.rb +50 -0
  129. data/lib/spec/interop/test.rb +44 -0
  130. data/lib/spec/interop/test/unit/autorunner.rb +6 -0
  131. data/lib/spec/interop/test/unit/testcase.rb +56 -0
  132. data/lib/spec/interop/test/unit/testresult.rb +6 -0
  133. data/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
  134. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
  135. data/lib/spec/matchers.rb +195 -0
  136. data/lib/spec/matchers/be.rb +210 -0
  137. data/lib/spec/matchers/be_close.rb +32 -0
  138. data/lib/spec/matchers/be_instance_of.rb +26 -0
  139. data/lib/spec/matchers/be_kind_of.rb +26 -0
  140. data/lib/spec/matchers/change.rb +151 -0
  141. data/lib/spec/matchers/compatibility.rb +14 -0
  142. data/lib/spec/matchers/dsl.rb +20 -0
  143. data/lib/spec/matchers/eql.rb +42 -0
  144. data/lib/spec/matchers/equal.rb +53 -0
  145. data/lib/spec/matchers/errors.rb +5 -0
  146. data/lib/spec/matchers/exist.rb +16 -0
  147. data/lib/spec/matchers/extensions/instance_exec.rb +31 -0
  148. data/lib/spec/matchers/generated_descriptions.rb +36 -0
  149. data/lib/spec/matchers/has.rb +35 -0
  150. data/lib/spec/matchers/have.rb +151 -0
  151. data/lib/spec/matchers/include.rb +44 -0
  152. data/lib/spec/matchers/match.rb +21 -0
  153. data/lib/spec/matchers/match_array.rb +71 -0
  154. data/lib/spec/matchers/matcher.rb +87 -0
  155. data/lib/spec/matchers/method_missing.rb +9 -0
  156. data/lib/spec/matchers/operator_matcher.rb +78 -0
  157. data/lib/spec/matchers/pretty.rb +37 -0
  158. data/lib/spec/matchers/raise_error.rb +129 -0
  159. data/lib/spec/matchers/respond_to.rb +71 -0
  160. data/lib/spec/matchers/satisfy.rb +47 -0
  161. data/lib/spec/matchers/simple_matcher.rb +133 -0
  162. data/lib/spec/matchers/throw_symbol.rb +104 -0
  163. data/lib/spec/matchers/wrap_expectation.rb +55 -0
  164. data/lib/spec/mocks.rb +200 -0
  165. data/lib/spec/mocks/argument_expectation.rb +51 -0
  166. data/lib/spec/mocks/argument_matchers.rb +237 -0
  167. data/lib/spec/mocks/error_generator.rb +92 -0
  168. data/lib/spec/mocks/errors.rb +10 -0
  169. data/lib/spec/mocks/example_methods.rb +69 -0
  170. data/lib/spec/mocks/extensions.rb +1 -0
  171. data/lib/spec/mocks/extensions/object.rb +3 -0
  172. data/lib/spec/mocks/framework.rb +15 -0
  173. data/lib/spec/mocks/message_expectation.rb +329 -0
  174. data/lib/spec/mocks/methods.rb +89 -0
  175. data/lib/spec/mocks/mock.rb +71 -0
  176. data/lib/spec/mocks/order_group.rb +29 -0
  177. data/lib/spec/mocks/proxy.rb +245 -0
  178. data/lib/spec/mocks/space.rb +28 -0
  179. data/lib/spec/rake/spectask.rb +230 -0
  180. data/lib/spec/rake/verify_rcov.rb +52 -0
  181. data/lib/spec/ruby.rb +9 -0
  182. data/lib/spec/runner.rb +66 -0
  183. data/lib/spec/runner/backtrace_tweaker.rb +77 -0
  184. data/lib/spec/runner/class_and_arguments_parser.rb +14 -0
  185. data/lib/spec/runner/command_line.rb +15 -0
  186. data/lib/spec/runner/configuration.rb +194 -0
  187. data/lib/spec/runner/differs/default.rb +93 -0
  188. data/lib/spec/runner/differs/load-diff-lcs.rb +12 -0
  189. data/lib/spec/runner/drb_command_line.rb +33 -0
  190. data/lib/spec/runner/example_group_runner.rb +59 -0
  191. data/lib/spec/runner/extensions/kernel.rb +9 -0
  192. data/lib/spec/runner/formatter/base_formatter.rb +139 -0
  193. data/lib/spec/runner/formatter/base_text_formatter.rb +142 -0
  194. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
  195. data/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
  196. data/lib/spec/runner/formatter/html_formatter.rb +338 -0
  197. data/lib/spec/runner/formatter/nested_text_formatter.rb +47 -0
  198. data/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
  199. data/lib/spec/runner/formatter/profile_formatter.rb +47 -0
  200. data/lib/spec/runner/formatter/progress_bar_formatter.rb +33 -0
  201. data/lib/spec/runner/formatter/silent_formatter.rb +10 -0
  202. data/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  203. data/lib/spec/runner/formatter/specdoc_formatter.rb +33 -0
  204. data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
  205. data/lib/spec/runner/heckle_runner.rb +72 -0
  206. data/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
  207. data/lib/spec/runner/line_number_query.rb +78 -0
  208. data/lib/spec/runner/option_parser.rb +225 -0
  209. data/lib/spec/runner/options.rb +406 -0
  210. data/lib/spec/runner/reporter.rb +171 -0
  211. data/lib/spec/stubs/cucumber.rb +5 -0
  212. data/lib/spec/test/unit.rb +10 -0
  213. data/lib/spec/version.rb +14 -0
  214. data/resources/helpers/cmdline.rb +8 -0
  215. data/resources/rake/examples.rake +7 -0
  216. data/resources/rake/examples_with_rcov.rake +9 -0
  217. data/resources/rake/failing_examples_with_html.rake +9 -0
  218. data/resources/rake/verify_rcov.rake +7 -0
  219. data/spec/README.jruby +15 -0
  220. data/spec/autotest/autotest_helper.rb +8 -0
  221. data/spec/autotest/autotest_matchers.rb +38 -0
  222. data/spec/autotest/discover_spec.rb +8 -0
  223. data/spec/autotest/failed_results_re_spec.rb +31 -0
  224. data/spec/autotest/rspec_spec.rb +111 -0
  225. data/spec/ruby_forker.rb +13 -0
  226. data/spec/spec.opts +6 -0
  227. data/spec/spec/dsl/main_spec.rb +95 -0
  228. data/spec/spec/example/example_group_class_definition_spec.rb +51 -0
  229. data/spec/spec/example/example_group_factory_spec.rb +180 -0
  230. data/spec/spec/example/example_group_methods_spec.rb +758 -0
  231. data/spec/spec/example/example_group_proxy_spec.rb +107 -0
  232. data/spec/spec/example/example_group_spec.rb +643 -0
  233. data/spec/spec/example/example_matcher_spec.rb +86 -0
  234. data/spec/spec/example/example_methods_spec.rb +162 -0
  235. data/spec/spec/example/example_proxy_spec.rb +57 -0
  236. data/spec/spec/example/helper_method_spec.rb +24 -0
  237. data/spec/spec/example/nested_example_group_spec.rb +71 -0
  238. data/spec/spec/example/pending_module_spec.rb +58 -0
  239. data/spec/spec/example/predicate_matcher_spec.rb +41 -0
  240. data/spec/spec/example/shared_example_group_spec.rb +257 -0
  241. data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
  242. data/spec/spec/example/subject_spec.rb +103 -0
  243. data/spec/spec/expectations/differs/default_spec.rb +194 -0
  244. data/spec/spec/expectations/extensions/kernel_spec.rb +45 -0
  245. data/spec/spec/expectations/fail_with_spec.rb +96 -0
  246. data/spec/spec/expectations/handler_spec.rb +206 -0
  247. data/spec/spec/expectations/wrap_expectation_spec.rb +30 -0
  248. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  249. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  250. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  251. data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  252. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  253. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  254. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  255. data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +22 -0
  256. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  257. data/spec/spec/interop/test/unit/spec_spec.rb +48 -0
  258. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
  259. data/spec/spec/interop/test/unit/testcase_spec.rb +50 -0
  260. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
  261. data/spec/spec/matchers/be_close_spec.rb +50 -0
  262. data/spec/spec/matchers/be_instance_of_spec.rb +36 -0
  263. data/spec/spec/matchers/be_kind_of_spec.rb +33 -0
  264. data/spec/spec/matchers/be_spec.rb +311 -0
  265. data/spec/spec/matchers/change_spec.rb +349 -0
  266. data/spec/spec/matchers/compatibility_spec.rb +28 -0
  267. data/spec/spec/matchers/description_generation_spec.rb +160 -0
  268. data/spec/spec/matchers/dsl_spec.rb +34 -0
  269. data/spec/spec/matchers/eql_spec.rb +33 -0
  270. data/spec/spec/matchers/equal_spec.rb +57 -0
  271. data/spec/spec/matchers/exist_spec.rb +65 -0
  272. data/spec/spec/matchers/has_spec.rb +81 -0
  273. data/spec/spec/matchers/have_spec.rb +396 -0
  274. data/spec/spec/matchers/include_spec.rb +88 -0
  275. data/spec/spec/matchers/match_array_spec.rb +108 -0
  276. data/spec/spec/matchers/match_spec.rb +57 -0
  277. data/spec/spec/matchers/matcher_methods_spec.rb +63 -0
  278. data/spec/spec/matchers/matcher_spec.rb +228 -0
  279. data/spec/spec/matchers/matchers_spec.rb +2 -0
  280. data/spec/spec/matchers/operator_matcher_spec.rb +191 -0
  281. data/spec/spec/matchers/raise_error_spec.rb +333 -0
  282. data/spec/spec/matchers/respond_to_spec.rb +116 -0
  283. data/spec/spec/matchers/satisfy_spec.rb +36 -0
  284. data/spec/spec/matchers/simple_matcher_spec.rb +93 -0
  285. data/spec/spec/matchers/throw_symbol_spec.rb +96 -0
  286. data/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
  287. data/spec/spec/mocks/argument_expectation_spec.rb +23 -0
  288. data/spec/spec/mocks/argument_matchers_spec.rb +19 -0
  289. data/spec/spec/mocks/at_least_spec.rb +97 -0
  290. data/spec/spec/mocks/at_most_spec.rb +93 -0
  291. data/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  292. data/spec/spec/mocks/bug_report_10263_spec.rb +27 -0
  293. data/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
  294. data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
  295. data/spec/spec/mocks/bug_report_496_spec.rb +19 -0
  296. data/spec/spec/mocks/bug_report_600_spec.rb +22 -0
  297. data/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  298. data/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  299. data/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  300. data/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  301. data/spec/spec/mocks/bug_report_830_spec.rb +21 -0
  302. data/spec/spec/mocks/double_spec.rb +12 -0
  303. data/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
  304. data/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
  305. data/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
  306. data/spec/spec/mocks/mock_ordering_spec.rb +94 -0
  307. data/spec/spec/mocks/mock_space_spec.rb +54 -0
  308. data/spec/spec/mocks/mock_spec.rb +594 -0
  309. data/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  310. data/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  311. data/spec/spec/mocks/null_object_mock_spec.rb +54 -0
  312. data/spec/spec/mocks/once_counts_spec.rb +53 -0
  313. data/spec/spec/mocks/options_hash_spec.rb +35 -0
  314. data/spec/spec/mocks/partial_mock_spec.rb +164 -0
  315. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
  316. data/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
  317. data/spec/spec/mocks/precise_counts_spec.rb +52 -0
  318. data/spec/spec/mocks/record_messages_spec.rb +26 -0
  319. data/spec/spec/mocks/stub_chain_spec.rb +42 -0
  320. data/spec/spec/mocks/stub_implementation_spec.rb +31 -0
  321. data/spec/spec/mocks/stub_spec.rb +203 -0
  322. data/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
  323. data/spec/spec/mocks/twice_counts_spec.rb +67 -0
  324. data/spec/spec/mocks/unstub_spec.rb +127 -0
  325. data/spec/spec/package/bin_spec_spec.rb +16 -0
  326. data/spec/spec/rake/spectask_spec.rb +150 -0
  327. data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
  328. data/spec/spec/runner/command_line_spec.rb +141 -0
  329. data/spec/spec/runner/configuration_spec.rb +320 -0
  330. data/spec/spec/runner/drb_command_line_spec.rb +148 -0
  331. data/spec/spec/runner/empty_file.txt +0 -0
  332. data/spec/spec/runner/example_group_runner_spec.rb +26 -0
  333. data/spec/spec/runner/examples.txt +2 -0
  334. data/spec/spec/runner/failed.txt +3 -0
  335. data/spec/spec/runner/formatter/base_formatter_spec.rb +30 -0
  336. data/spec/spec/runner/formatter/base_text_formatter_spec.rb +113 -0
  337. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
  338. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
  339. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +377 -0
  340. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +377 -0
  341. data/spec/spec/runner/formatter/html_formatted-1.8.7.html +377 -0
  342. data/spec/spec/runner/formatter/html_formatted-1.9.1.html +377 -0
  343. data/spec/spec/runner/formatter/html_formatter_spec.rb +118 -0
  344. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +305 -0
  345. data/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
  346. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +149 -0
  347. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
  348. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
  349. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +371 -0
  350. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +371 -0
  351. data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +371 -0
  352. data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +371 -0
  353. data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +106 -0
  354. data/spec/spec/runner/heckle_runner_spec.rb +78 -0
  355. data/spec/spec/runner/heckler_spec.rb +20 -0
  356. data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +70 -0
  357. data/spec/spec/runner/line_number_query_spec.rb +129 -0
  358. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +51 -0
  359. data/spec/spec/runner/option_parser_spec.rb +554 -0
  360. data/spec/spec/runner/options_spec.rb +554 -0
  361. data/spec/spec/runner/output_one_time_fixture.rb +7 -0
  362. data/spec/spec/runner/output_one_time_fixture_runner.rb +7 -0
  363. data/spec/spec/runner/output_one_time_spec.rb +15 -0
  364. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +105 -0
  365. data/spec/spec/runner/reporter_spec.rb +244 -0
  366. data/spec/spec/runner/resources/a_bar.rb +0 -0
  367. data/spec/spec/runner/resources/a_foo.rb +0 -0
  368. data/spec/spec/runner/resources/a_spec.rb +1 -0
  369. data/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
  370. data/spec/spec/runner/resources/utf8_encoded.rb +8 -0
  371. data/spec/spec/runner/spec.opts +2 -0
  372. data/spec/spec/runner/spec_drb.opts +2 -0
  373. data/spec/spec/runner/spec_spaced.opts +2 -0
  374. data/spec/spec/runner_spec.rb +13 -0
  375. data/spec/spec_helper.rb +112 -0
  376. data/spec/support/macros.rb +29 -0
  377. data/spec/support/spec_classes.rb +133 -0
  378. metadata +505 -0
@@ -0,0 +1,116 @@
1
+ require 'spec_helper'
2
+
3
+ describe "should respond_to(:sym)" do
4
+
5
+ it "passes if target responds to :sym" do
6
+ Object.new.should respond_to(:methods)
7
+ end
8
+
9
+ it "fails if target does not respond to :sym" do
10
+ lambda {
11
+ "this string".should respond_to(:some_method)
12
+ }.should fail_with(%q|expected "this string" to respond to :some_method|)
13
+ end
14
+
15
+ end
16
+
17
+ describe "should respond_to(:sym).with(1).argument" do
18
+ it "passes if target responds to :sym with 1 arg" do
19
+ obj = Object.new
20
+ def obj.foo(arg); end
21
+ obj.should respond_to(:foo).with(1).argument
22
+ end
23
+
24
+ it "fails if target does not respond to :sym" do
25
+ obj = Object.new
26
+ lambda {
27
+ obj.should respond_to(:some_method).with(1).argument
28
+ }.should fail_with(/expected .* to respond to :some_method/)
29
+ end
30
+
31
+ it "fails if :sym expects 0 args" do
32
+ obj = Object.new
33
+ def obj.foo; end
34
+ lambda {
35
+ obj.should respond_to(:foo).with(1).argument
36
+ }.should fail_with(/expected #<Object.*> to respond to :foo with 1 argument/)
37
+ end
38
+
39
+ it "fails if :sym expects 2 args" do
40
+ obj = Object.new
41
+ def obj.foo(arg, arg2); end
42
+ lambda {
43
+ obj.should respond_to(:foo).with(1).argument
44
+ }.should fail_with(/expected #<Object.*> to respond to :foo with 1 argument/)
45
+ end
46
+ end
47
+
48
+ describe "should respond_to(message1, message2)" do
49
+
50
+ it "passes if target responds to both messages" do
51
+ Object.new.should respond_to('methods', 'inspect')
52
+ end
53
+
54
+ it "fails if target does not respond to first message" do
55
+ lambda {
56
+ Object.new.should respond_to('method_one', 'inspect')
57
+ }.should fail_with(/expected #<Object:.*> to respond to "method_one"/)
58
+ end
59
+
60
+ it "fails if target does not respond to second message" do
61
+ lambda {
62
+ Object.new.should respond_to('inspect', 'method_one')
63
+ }.should fail_with(/expected #<Object:.*> to respond to "method_one"/)
64
+ end
65
+
66
+ it "fails if target does not respond to either message" do
67
+ lambda {
68
+ Object.new.should respond_to('method_one', 'method_two')
69
+ }.should fail_with(/expected #<Object:.*> to respond to "method_one", "method_two"/)
70
+ end
71
+ end
72
+
73
+ describe "should respond_to(:sym).with(2).arguments" do
74
+ it "passes if target responds to :sym with 2 args" do
75
+ obj = Object.new
76
+ def obj.foo(a1, a2); end
77
+ obj.should respond_to(:foo).with(2).arguments
78
+ end
79
+
80
+ it "fails if target does not respond to :sym" do
81
+ obj = Object.new
82
+ lambda {
83
+ obj.should respond_to(:some_method).with(2).arguments
84
+ }.should fail_with(/expected .* to respond to :some_method/)
85
+ end
86
+
87
+ it "fails if :sym expects 0 args" do
88
+ obj = Object.new
89
+ def obj.foo; end
90
+ lambda {
91
+ obj.should respond_to(:foo).with(2).arguments
92
+ }.should fail_with(/expected #<Object.*> to respond to :foo with 2 arguments/)
93
+ end
94
+
95
+ it "fails if :sym expects 2 args" do
96
+ obj = Object.new
97
+ def obj.foo(arg); end
98
+ lambda {
99
+ obj.should respond_to(:foo).with(2).arguments
100
+ }.should fail_with(/expected #<Object.*> to respond to :foo with 2 arguments/)
101
+ end
102
+ end
103
+
104
+ describe "should_not respond_to(:sym)" do
105
+
106
+ it "passes if target does not respond to :sym" do
107
+ Object.new.should_not respond_to(:some_method)
108
+ end
109
+
110
+ it "fails if target responds to :sym" do
111
+ lambda {
112
+ Object.new.should_not respond_to(:methods)
113
+ }.should fail_with(/expected #<Object:.*> not to respond to :methods/)
114
+ end
115
+
116
+ end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ describe "should satisfy { block }" do
4
+ it "should pass if block returns true" do
5
+ true.should satisfy { |val| val }
6
+ true.should satisfy do |val|
7
+ val
8
+ end
9
+ end
10
+
11
+ it "should fail if block returns false" do
12
+ lambda {
13
+ false.should satisfy { |val| val }
14
+ }.should fail_with("expected false to satisfy block")
15
+ lambda do
16
+ false.should satisfy do |val|
17
+ val
18
+ end
19
+ end.should fail_with("expected false to satisfy block")
20
+ end
21
+ end
22
+
23
+ describe "should_not satisfy { block }" do
24
+ it "should pass if block returns false" do
25
+ false.should_not satisfy { |val| val }
26
+ false.should_not satisfy do |val|
27
+ val
28
+ end
29
+ end
30
+
31
+ it "should fail if block returns true" do
32
+ lambda {
33
+ true.should_not satisfy { |val| val }
34
+ }.should fail_with("expected true not to satisfy block")
35
+ end
36
+ end
@@ -0,0 +1,93 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ module Matchers
5
+ describe SimpleMatcher do
6
+ it "should pass match arg to block" do
7
+ actual = nil
8
+ matcher = simple_matcher("message") do |given| actual = given end
9
+ matcher.matches?("foo")
10
+ actual.should == "foo"
11
+ end
12
+
13
+ it "should provide a stock failure message" do
14
+ matcher = simple_matcher("thing") do end
15
+ matcher.matches?("other")
16
+ matcher.failure_message.should =~ /expected \"thing\" but got \"other\"/
17
+ end
18
+
19
+ it "should provide a stock negative failure message" do
20
+ matcher = simple_matcher("thing") do end
21
+ matcher.matches?("other")
22
+ matcher.negative_failure_message.should =~ /expected not to get \"thing\", but got \"other\"/
23
+ end
24
+
25
+ it "should provide the given description" do
26
+ matcher = simple_matcher("thing") do end
27
+ matcher.description.should =="thing"
28
+ end
29
+
30
+ it "should fail if a wrapped 'should' fails" do
31
+ matcher = simple_matcher("should fail") do
32
+ 2.should == 3
33
+ end
34
+ lambda do
35
+ matcher.matches?("anything").should be_true
36
+ end.should fail_with(/expected: 3/)
37
+ end
38
+ end
39
+
40
+ describe "with arity of 2" do
41
+ it "should provide the matcher so you can access its messages" do
42
+ provided_matcher = nil
43
+ matcher = simple_matcher("thing") do |given, matcher|
44
+ provided_matcher = matcher
45
+ end
46
+ matcher.matches?("anything")
47
+ provided_matcher.should equal(matcher)
48
+ end
49
+
50
+ it "should support a custom failure message" do
51
+ matcher = simple_matcher("thing") do |given, matcher|
52
+ matcher.failure_message = "custom message"
53
+ end
54
+ matcher.matches?("other")
55
+ matcher.failure_message.should == "custom message"
56
+ end
57
+
58
+ it "should complain when asked for a failure message if you don't give it a description or a message" do
59
+ matcher = simple_matcher do |given, matcher| end
60
+ matcher.matches?("other")
61
+ matcher.failure_message.should =~ /No description provided/
62
+ end
63
+
64
+ it "should support a custom negative failure message" do
65
+ matcher = simple_matcher("thing") do |given, matcher|
66
+ matcher.negative_failure_message = "custom message"
67
+ end
68
+ matcher.matches?("other")
69
+ matcher.negative_failure_message.should == "custom message"
70
+ end
71
+
72
+ it "should complain when asked for a negative failure message if you don't give it a description or a message" do
73
+ matcher = simple_matcher do |given, matcher| end
74
+ matcher.matches?("other")
75
+ matcher.negative_failure_message.should =~ /No description provided/
76
+ end
77
+
78
+ it "should support a custom description" do
79
+ matcher = simple_matcher("thing") do |given, matcher|
80
+ matcher.description = "custom message"
81
+ end
82
+ matcher.matches?("description")
83
+ matcher.description.should == "custom message"
84
+ end
85
+
86
+ it "should tell you no description was provided when it doesn't receive one" do
87
+ matcher = simple_matcher do end
88
+ matcher.description.should =~ /No description provided/
89
+ end
90
+ end
91
+
92
+ end
93
+ end
@@ -0,0 +1,96 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ module Matchers
5
+ describe ThrowSymbol do
6
+ describe "with no args" do
7
+ before(:each) { @matcher = ThrowSymbol.new }
8
+
9
+ it "should match if any Symbol is thrown" do
10
+ @matcher.matches?(lambda{ throw :sym }).should be_true
11
+ end
12
+ it "should match if any Symbol is thrown with an arg" do
13
+ @matcher.matches?(lambda{ throw :sym, "argument" }).should be_true
14
+ end
15
+ it "should not match if no Symbol is thrown" do
16
+ @matcher.matches?(lambda{ }).should be_false
17
+ end
18
+ it "should provide a failure message" do
19
+ @matcher.matches?(lambda{})
20
+ @matcher.failure_message_for_should.should == "expected a Symbol but nothing was thrown"
21
+ end
22
+ it "should provide a negative failure message" do
23
+ @matcher.matches?(lambda{ throw :sym})
24
+ @matcher.failure_message_for_should_not.should == "expected no Symbol, got :sym"
25
+ end
26
+ end
27
+
28
+ describe "with a symbol" do
29
+ before(:each) { @matcher = ThrowSymbol.new(:sym) }
30
+
31
+ it "should match if correct Symbol is thrown" do
32
+ @matcher.matches?(lambda{ throw :sym }).should be_true
33
+ end
34
+ it "should match if correct Symbol is thrown with an arg" do
35
+ @matcher.matches?(lambda{ throw :sym, "argument" }).should be_true
36
+ end
37
+ it "should not match if no Symbol is thrown" do
38
+ @matcher.matches?(lambda{ }).should be_false
39
+ end
40
+ it "should not match if correct Symbol is thrown" do
41
+ @matcher.matches?(lambda{ throw :other_sym }).should be_false
42
+ end
43
+ it "should provide a failure message when no Symbol is thrown" do
44
+ @matcher.matches?(lambda{})
45
+ @matcher.failure_message_for_should.should == "expected :sym but nothing was thrown"
46
+ end
47
+ it "should provide a failure message when wrong Symbol is thrown" do
48
+ @matcher.matches?(lambda{ throw :other_sym })
49
+ @matcher.failure_message_for_should.should == "expected :sym, got :other_sym"
50
+ end
51
+ it "should provide a negative failure message" do
52
+ @matcher.matches?(lambda{ throw :sym })
53
+ @matcher.failure_message_for_should_not.should == "expected :sym not to be thrown"
54
+ end
55
+ it "should only match NameErrors raised by uncaught throws" do
56
+ @matcher.matches?(lambda{ sym }).should be_false
57
+ end
58
+ end
59
+
60
+ describe "with a symbol and an arg" do
61
+ before(:each) { @matcher = ThrowSymbol.new(:sym, "a") }
62
+
63
+ it "should match if correct Symbol and args are thrown" do
64
+ @matcher.matches?(lambda{ throw :sym, "a" }).should be_true
65
+ end
66
+ it "should not match if nothing is thrown" do
67
+ @matcher.matches?(lambda{ }).should be_false
68
+ end
69
+ it "should not match if other Symbol is thrown" do
70
+ @matcher.matches?(lambda{ throw :other_sym, "a" }).should be_false
71
+ end
72
+ it "should not match if no arg is thrown" do
73
+ @matcher.matches?(lambda{ throw :sym }).should be_false
74
+ end
75
+ it "should not match if wrong arg is thrown" do
76
+ @matcher.matches?(lambda{ throw :sym, "b" }).should be_false
77
+ end
78
+ it "should provide a failure message when no Symbol is thrown" do
79
+ @matcher.matches?(lambda{})
80
+ @matcher.failure_message_for_should.should == %q[expected :sym with "a" but nothing was thrown]
81
+ end
82
+ it "should provide a failure message when wrong Symbol is thrown" do
83
+ @matcher.matches?(lambda{ throw :other_sym })
84
+ @matcher.failure_message_for_should.should == %q[expected :sym with "a", got :other_sym]
85
+ end
86
+ it "should provide a negative failure message" do
87
+ @matcher.matches?(lambda{ throw :sym })
88
+ @matcher.failure_message_for_should_not.should == %q[expected :sym with "a" not to be thrown]
89
+ end
90
+ it "should only match NameErrors raised by uncaught throws" do
91
+ @matcher.matches?(lambda{ sym }).should be_false
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ module Mocks
5
+
6
+ describe "AnyNumberOfTimes" do
7
+ before(:each) do
8
+ @mock = Mock.new("test mock")
9
+ end
10
+
11
+ it "should pass if any number of times method is called many times" do
12
+ @mock.should_receive(:random_call).any_number_of_times
13
+ (1..10).each do
14
+ @mock.random_call
15
+ end
16
+ end
17
+
18
+ it "should pass if any number of times method is called once" do
19
+ @mock.should_receive(:random_call).any_number_of_times
20
+ @mock.random_call
21
+ end
22
+
23
+ it "should pass if any number of times method is not called" do
24
+ @mock.should_receive(:random_call).any_number_of_times
25
+ end
26
+
27
+ it "should return the mocked value when called after a similar stub" do
28
+ @mock.stub!(:message).and_return :stub_value
29
+ @mock.should_receive(:message).any_number_of_times.and_return(:mock_value)
30
+ @mock.message.should == :mock_value
31
+ @mock.message.should == :mock_value
32
+ end
33
+ end
34
+
35
+ end
36
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ module Mocks
5
+ describe ArgumentExpectation do
6
+ it "should consider an object that responds to #matches? and #description to be a matcher" do
7
+ argument_expecatation = Spec::Mocks::ArgumentExpectation.new([])
8
+ obj = mock("matcher")
9
+ obj.should_receive(:respond_to?).with(:matches?).and_return(true)
10
+ obj.should_receive(:respond_to?).with(:description).and_return(true)
11
+ argument_expecatation.is_matcher?(obj).should be_true
12
+ end
13
+
14
+ it "should NOT consider an object that only responds to #matches? to be a matcher" do
15
+ argument_expecatation = Spec::Mocks::ArgumentExpectation.new([])
16
+ obj = mock("matcher")
17
+ obj.should_receive(:respond_to?).with(:matches?).and_return(true)
18
+ obj.should_receive(:respond_to?).with(:description).and_return(false)
19
+ argument_expecatation.is_matcher?(obj).should be_false
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ module Mocks
5
+ module ArgumentMatchers
6
+ describe AnyArgsMatcher do
7
+ it "represents itself nicely for failure messages" do
8
+ AnyArgsMatcher.new.description.should == "any args"
9
+ end
10
+ end
11
+
12
+ describe AnyArgMatcher do
13
+ it "represents itself nicely for failure messages" do
14
+ AnyArgMatcher.new(nil).description.should == "anything"
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,97 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ module Mocks
5
+ describe "at_least" do
6
+ before(:each) do
7
+ @mock = Mock.new("test mock")
8
+ end
9
+
10
+ it "should fail if method is never called" do
11
+ @mock.should_receive(:random_call).at_least(4).times
12
+ lambda do
13
+ @mock.rspec_verify
14
+ end.should raise_error(MockExpectationError)
15
+ end
16
+
17
+ it "should fail when called less than n times" do
18
+ @mock.should_receive(:random_call).at_least(4).times
19
+ @mock.random_call
20
+ @mock.random_call
21
+ @mock.random_call
22
+ lambda do
23
+ @mock.rspec_verify
24
+ end.should raise_error(MockExpectationError)
25
+ end
26
+
27
+ it "should fail when at least once method is never called" do
28
+ @mock.should_receive(:random_call).at_least(:once)
29
+ lambda do
30
+ @mock.rspec_verify
31
+ end.should raise_error(MockExpectationError)
32
+ end
33
+
34
+ it "should fail when at least twice method is called once" do
35
+ @mock.should_receive(:random_call).at_least(:twice)
36
+ @mock.random_call
37
+ lambda do
38
+ @mock.rspec_verify
39
+ end.should raise_error(MockExpectationError)
40
+ end
41
+
42
+ it "should fail when at least twice method is never called" do
43
+ @mock.should_receive(:random_call).at_least(:twice)
44
+ lambda do
45
+ @mock.rspec_verify
46
+ end.should raise_error(MockExpectationError)
47
+ end
48
+
49
+ it "should pass when at least n times method is called exactly n times" do
50
+ @mock.should_receive(:random_call).at_least(4).times
51
+ @mock.random_call
52
+ @mock.random_call
53
+ @mock.random_call
54
+ @mock.random_call
55
+ @mock.rspec_verify
56
+ end
57
+
58
+ it "should pass when at least n times method is called n plus 1 times" do
59
+ @mock.should_receive(:random_call).at_least(4).times
60
+ @mock.random_call
61
+ @mock.random_call
62
+ @mock.random_call
63
+ @mock.random_call
64
+ @mock.random_call
65
+ @mock.rspec_verify
66
+ end
67
+
68
+ it "should pass when at least once method is called once" do
69
+ @mock.should_receive(:random_call).at_least(:once)
70
+ @mock.random_call
71
+ @mock.rspec_verify
72
+ end
73
+
74
+ it "should pass when at least once method is called twice" do
75
+ @mock.should_receive(:random_call).at_least(:once)
76
+ @mock.random_call
77
+ @mock.random_call
78
+ @mock.rspec_verify
79
+ end
80
+
81
+ it "should pass when at least twice method is called three times" do
82
+ @mock.should_receive(:random_call).at_least(:twice)
83
+ @mock.random_call
84
+ @mock.random_call
85
+ @mock.random_call
86
+ @mock.rspec_verify
87
+ end
88
+
89
+ it "should pass when at least twice method is called twice" do
90
+ @mock.should_receive(:random_call).at_least(:twice)
91
+ @mock.random_call
92
+ @mock.random_call
93
+ @mock.rspec_verify
94
+ end
95
+ end
96
+ end
97
+ end