rspec 1.0.0 → 1.3.1

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 (456) hide show
  1. data/.document +7 -0
  2. data/History.rdoc +1546 -0
  3. data/{MIT-LICENSE → License.txt} +3 -1
  4. data/Manifest.txt +384 -0
  5. data/README.rdoc +41 -0
  6. data/Rakefile +94 -229
  7. data/Ruby1.9.rdoc +31 -0
  8. data/TODO.txt +17 -0
  9. data/Upgrade.rdoc +260 -0
  10. data/bin/autospec +4 -0
  11. data/bin/spec +5 -3
  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/{custom_formatter.rb → passing/custom_formatter.rb} +1 -1
  30. data/examples/passing/dynamic_spec.rb +7 -0
  31. data/examples/{file_accessor.rb → passing/file_accessor.rb} +18 -18
  32. data/examples/{file_accessor_spec.rb → passing/file_accessor_spec.rb} +37 -38
  33. data/examples/passing/filtered_formatter.rb +17 -0
  34. data/examples/passing/filtered_formatter_example.rb +31 -0
  35. data/examples/{greeter_spec.rb → passing/greeter_spec.rb} +1 -1
  36. data/examples/passing/helper_method_example.rb +12 -0
  37. data/examples/passing/implicit_docstrings_example.rb +16 -0
  38. data/examples/{io_processor.rb → passing/io_processor.rb} +8 -8
  39. data/examples/{io_processor_spec.rb → passing/io_processor_spec.rb} +2 -3
  40. data/examples/{mocking_example.rb → passing/mocking_example.rb} +0 -2
  41. data/examples/{multi_threaded_behaviour_runner.rb → passing/multi_threaded_example_group_runner.rb} +10 -9
  42. data/examples/passing/nested_classes_example.rb +35 -0
  43. data/examples/passing/options_example.rb +29 -0
  44. data/examples/passing/options_formatter.rb +20 -0
  45. data/examples/{partial_mock_example.rb → passing/partial_mock_example.rb} +2 -3
  46. data/examples/passing/pending_example.rb +18 -0
  47. data/examples/{predicate_example.rb → passing/predicate_example.rb} +1 -3
  48. data/examples/{shared_behaviours_example.rb → passing/shared_example_group_example.rb} +15 -11
  49. data/examples/passing/shared_stack_examples.rb +36 -0
  50. data/examples/passing/simple_matcher_example.rb +29 -0
  51. data/examples/{stack.rb → passing/stack.rb} +1 -1
  52. data/examples/{stack_spec.rb → passing/stack_spec.rb} +6 -40
  53. data/examples/passing/stack_spec_with_nested_example_groups.rb +66 -0
  54. data/examples/{stubbing_example.rb → passing/stubbing_example.rb} +1 -3
  55. data/examples/passing/yielding_example.rb +31 -0
  56. data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +85 -0
  57. data/features/before_and_after_blocks/before_and_after_blocks.feature +167 -0
  58. data/features/command_line/line_number_option.feature +56 -0
  59. data/features/command_line/line_number_option_with_example_with_no_name.feature +22 -0
  60. data/features/example_groups/define_example_attribute.feature +41 -0
  61. data/features/example_groups/example_group_with_should_methods.feature +29 -0
  62. data/features/example_groups/implicit_docstrings.feature +59 -0
  63. data/features/example_groups/nested_groups.feature +32 -0
  64. data/features/expectations/customized_message.feature +54 -0
  65. data/features/expectations/expect_change.feature +65 -0
  66. data/features/expectations/expect_error.feature +44 -0
  67. data/features/extensions/custom_example_group.feature +19 -0
  68. data/features/formatters/custom_formatter.feature +30 -0
  69. data/features/formatters/nested_formatter.feature +32 -0
  70. data/features/interop/cucumber_stubs_dont_leak.feature +11 -0
  71. data/features/interop/examples_and_tests_together.feature +84 -0
  72. data/features/interop/rspec_output.feature +25 -0
  73. data/features/interop/test_but_not_test_unit.feature +26 -0
  74. data/features/interop/test_case_with_should_methods.feature +46 -0
  75. data/features/load_paths/add_lib_to_load_path.feature +20 -0
  76. data/features/load_paths/add_spec_to_load_path.feature +20 -0
  77. data/features/matchers/define_diffable_matcher.feature +26 -0
  78. data/features/matchers/define_matcher.feature +179 -0
  79. data/features/matchers/define_matcher_outside_rspec.feature +38 -0
  80. data/features/matchers/define_matcher_with_fluent_interface.feature +48 -0
  81. data/features/matchers/define_wrapped_matcher.feature +56 -0
  82. data/features/matchers/match_unless_raises.feature +60 -0
  83. data/features/matchers/match_unless_raises_unexpected_error.feature +39 -0
  84. data/features/mock_framework_integration/use_flexmock.feature +27 -0
  85. data/features/mock_framework_integration/use_mocha.feature +27 -0
  86. data/features/mock_framework_integration/use_rr.feature +27 -0
  87. data/features/mocks/block_local_expectations.feature +62 -0
  88. data/features/mocks/mix_stubs_and_mocks.feature +22 -0
  89. data/features/mocks/stub_implementation.feature +26 -0
  90. data/features/pending/pending_examples.feature +81 -0
  91. data/features/runner/specify_line_number.feature +32 -0
  92. data/features/spec_helper/spec_helper.feature +25 -0
  93. data/features/step_definitions/running_rspec_steps.rb +52 -0
  94. data/features/step_definitions/stubbing_steps.rb +16 -0
  95. data/features/subject/explicit_subject.feature +31 -0
  96. data/features/subject/implicit_subject.feature +43 -0
  97. data/features/support/env.rb +83 -0
  98. data/features/support/matchers/smart_match.rb +31 -0
  99. data/geminstaller.yml +29 -0
  100. data/init.rb +9 -0
  101. data/lib/autotest/discover.rb +3 -0
  102. data/lib/autotest/rspec.rb +54 -0
  103. data/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
  104. data/{plugins → lib/spec/adapters}/mock_frameworks/mocha.rb +8 -4
  105. data/lib/spec/adapters/mock_frameworks/rr.rb +22 -0
  106. data/lib/spec/adapters/mock_frameworks/rspec.rb +21 -0
  107. data/lib/spec/autorun.rb +3 -0
  108. data/lib/spec/deprecation.rb +41 -0
  109. data/lib/spec/dsl/main.rb +93 -0
  110. data/lib/spec/dsl.rb +1 -10
  111. data/lib/spec/example/args_and_options.rb +27 -0
  112. data/lib/spec/example/before_and_after_hooks.rb +93 -0
  113. data/lib/spec/example/errors.rb +25 -0
  114. data/lib/spec/example/example_group.rb +10 -0
  115. data/lib/spec/example/example_group_factory.rb +82 -0
  116. data/lib/spec/example/example_group_hierarchy.rb +53 -0
  117. data/lib/spec/example/example_group_methods.rb +287 -0
  118. data/lib/spec/example/example_group_proxy.rb +61 -0
  119. data/lib/spec/example/example_matcher.rb +43 -0
  120. data/lib/spec/example/example_methods.rb +152 -0
  121. data/lib/spec/example/example_proxy.rb +41 -0
  122. data/lib/spec/example/module_reopening_fix.rb +43 -0
  123. data/lib/spec/example/pending.rb +18 -0
  124. data/lib/spec/example/predicate_matchers.rb +46 -0
  125. data/lib/spec/example/shared_example_group.rb +59 -0
  126. data/lib/spec/example/subject.rb +114 -0
  127. data/lib/spec/example.rb +164 -0
  128. data/lib/spec/expectations/errors.rb +7 -1
  129. data/lib/spec/expectations/extensions/kernel.rb +52 -0
  130. data/lib/spec/expectations/extensions.rb +1 -2
  131. data/lib/spec/expectations/fail_with.rb +45 -0
  132. data/lib/spec/expectations/handler.rb +37 -30
  133. data/lib/spec/expectations.rb +2 -23
  134. data/lib/spec/extensions/instance_exec.rb +31 -0
  135. data/lib/spec/interop/test/unit/autorunner.rb +6 -0
  136. data/lib/spec/interop/test/unit/testcase.rb +56 -0
  137. data/lib/spec/interop/test/unit/testresult.rb +6 -0
  138. data/lib/spec/interop/test/unit/testsuite_adapter.rb +36 -0
  139. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
  140. data/lib/spec/interop/test.rb +44 -0
  141. data/lib/spec/matchers/be.rb +183 -140
  142. data/lib/spec/matchers/be_close.rb +18 -23
  143. data/lib/spec/matchers/be_instance_of.rb +26 -0
  144. data/lib/spec/matchers/be_kind_of.rb +26 -0
  145. data/lib/spec/matchers/change.rb +72 -41
  146. data/lib/spec/matchers/compatibility.rb +14 -0
  147. data/lib/spec/matchers/dsl.rb +20 -0
  148. data/lib/spec/matchers/eql.rb +25 -26
  149. data/lib/spec/matchers/equal.rb +35 -25
  150. data/lib/spec/matchers/errors.rb +5 -0
  151. data/lib/spec/matchers/exist.rb +16 -0
  152. data/lib/spec/matchers/generated_descriptions.rb +36 -0
  153. data/lib/spec/matchers/has.rb +17 -26
  154. data/lib/spec/matchers/have.rb +36 -24
  155. data/lib/spec/matchers/include.rb +22 -48
  156. data/lib/spec/matchers/match.rb +11 -31
  157. data/lib/spec/matchers/match_array.rb +71 -0
  158. data/lib/spec/matchers/matcher.rb +132 -0
  159. data/lib/spec/matchers/method_missing.rb +9 -0
  160. data/lib/spec/matchers/operator_matcher.rb +55 -44
  161. data/lib/spec/matchers/pretty.rb +37 -0
  162. data/lib/spec/matchers/raise_exception.rb +131 -0
  163. data/lib/spec/matchers/respond_to.rb +35 -9
  164. data/lib/spec/matchers/satisfy.rb +2 -2
  165. data/lib/spec/matchers/simple_matcher.rb +134 -0
  166. data/lib/spec/matchers/throw_symbol.rb +56 -31
  167. data/lib/spec/matchers/wrap_expectation.rb +55 -0
  168. data/lib/spec/matchers.rb +104 -48
  169. data/lib/spec/mocks/argument_expectation.rb +28 -112
  170. data/lib/spec/mocks/argument_matchers.rb +237 -0
  171. data/lib/spec/mocks/error_generator.rb +20 -13
  172. data/lib/spec/mocks/errors.rb +1 -1
  173. data/lib/spec/mocks/example_methods.rb +69 -0
  174. data/lib/spec/mocks/extensions.rb +1 -0
  175. data/lib/spec/mocks/framework.rb +15 -0
  176. data/lib/spec/mocks/message_expectation.rb +206 -93
  177. data/lib/spec/mocks/methods.rb +66 -7
  178. data/lib/spec/mocks/mock.rb +53 -11
  179. data/lib/spec/mocks/proxy.rb +160 -55
  180. data/lib/spec/mocks/space.rb +2 -2
  181. data/lib/spec/mocks.rb +14 -23
  182. data/lib/spec/rake/spectask.rb +108 -53
  183. data/lib/spec/rake/verify_rcov.rb +4 -4
  184. data/lib/spec/ruby.rb +9 -0
  185. data/lib/spec/runner/backtrace_tweaker.rb +45 -23
  186. data/lib/spec/runner/class_and_arguments_parser.rb +14 -0
  187. data/lib/spec/runner/command_line.rb +7 -14
  188. data/lib/spec/runner/configuration.rb +202 -0
  189. data/lib/spec/runner/differs/default.rb +93 -0
  190. data/lib/spec/runner/differs/load-diff-lcs.rb +12 -0
  191. data/lib/spec/runner/drb_command_line.rb +18 -7
  192. data/lib/spec/runner/example_group_runner.rb +58 -0
  193. data/lib/spec/runner/extensions/kernel.rb +5 -46
  194. data/lib/spec/runner/formatter/base_formatter.rb +97 -26
  195. data/lib/spec/runner/formatter/base_text_formatter.rb +79 -39
  196. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
  197. data/lib/spec/runner/formatter/failing_examples_formatter.rb +6 -8
  198. data/lib/spec/runner/formatter/html_formatter.rb +101 -75
  199. data/lib/spec/runner/formatter/nested_text_formatter.rb +50 -0
  200. data/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
  201. data/lib/spec/runner/formatter/profile_formatter.rb +47 -0
  202. data/lib/spec/runner/formatter/progress_bar_formatter.rb +11 -8
  203. data/lib/spec/runner/formatter/silent_formatter.rb +10 -0
  204. data/lib/spec/runner/formatter/snippet_extractor.rb +2 -2
  205. data/lib/spec/runner/formatter/specdoc_formatter.rb +20 -15
  206. data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
  207. data/lib/spec/runner/heckle_runner.rb +56 -56
  208. data/lib/spec/runner/{heckle_runner_win.rb → heckle_runner_unsupported.rb} +10 -10
  209. data/lib/spec/runner/line_number_query.rb +78 -0
  210. data/lib/spec/runner/option_parser.rb +147 -148
  211. data/lib/spec/runner/options.rb +343 -95
  212. data/lib/spec/runner/reporter.rb +117 -60
  213. data/lib/spec/runner.rb +39 -138
  214. data/lib/spec/stubs/cucumber.rb +5 -0
  215. data/lib/spec/test/unit.rb +10 -0
  216. data/lib/spec/version.rb +14 -22
  217. data/lib/spec.rb +5 -10
  218. data/resources/helpers/cmdline.rb +8 -0
  219. data/resources/rake/examples.rake +7 -0
  220. data/resources/rake/examples_with_rcov.rake +9 -0
  221. data/resources/rake/failing_examples_with_html.rake +9 -0
  222. data/resources/rake/verify_rcov.rake +7 -0
  223. data/spec/README.jruby +15 -0
  224. data/spec/autotest/autotest_helper.rb +8 -0
  225. data/spec/autotest/autotest_matchers.rb +38 -0
  226. data/spec/autotest/discover_spec.rb +8 -0
  227. data/spec/autotest/failed_results_re_spec.rb +31 -0
  228. data/spec/autotest/rspec_spec.rb +126 -0
  229. data/spec/ruby_forker.rb +13 -0
  230. data/spec/spec/dsl/main_spec.rb +103 -0
  231. data/spec/spec/example/example_group_class_definition_spec.rb +51 -0
  232. data/spec/spec/example/example_group_factory_spec.rb +180 -0
  233. data/spec/spec/example/example_group_methods_spec.rb +778 -0
  234. data/spec/spec/example/example_group_proxy_spec.rb +107 -0
  235. data/spec/spec/example/example_group_spec.rb +632 -0
  236. data/spec/spec/example/example_matcher_spec.rb +85 -0
  237. data/spec/spec/example/example_methods_spec.rb +162 -0
  238. data/spec/spec/example/example_proxy_spec.rb +57 -0
  239. data/spec/spec/example/helper_method_spec.rb +24 -0
  240. data/spec/spec/{dsl/behaviour_eval_spec.rb → example/nested_example_group_spec.rb} +25 -3
  241. data/spec/spec/example/pending_module_spec.rb +58 -0
  242. data/spec/spec/example/predicate_matcher_spec.rb +41 -0
  243. data/spec/spec/example/shared_example_group_spec.rb +257 -0
  244. data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
  245. data/spec/spec/example/subject_spec.rb +110 -0
  246. data/spec/spec/expectations/differs/default_spec.rb +100 -13
  247. data/spec/spec/expectations/extensions/{object_spec.rb → kernel_spec.rb} +13 -14
  248. data/spec/spec/expectations/fail_with_spec.rb +42 -17
  249. data/spec/spec/expectations/handler_spec.rb +206 -0
  250. data/spec/spec/expectations/wrap_expectation_spec.rb +31 -0
  251. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  252. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  253. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  254. data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  255. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  256. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  257. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  258. data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +22 -0
  259. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  260. data/spec/spec/interop/test/unit/spec_spec.rb +48 -0
  261. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
  262. data/spec/spec/interop/test/unit/testcase_spec.rb +50 -0
  263. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
  264. data/spec/spec/matchers/be_close_spec.rb +32 -21
  265. data/spec/spec/matchers/be_instance_of_spec.rb +36 -0
  266. data/spec/spec/matchers/be_kind_of_spec.rb +33 -0
  267. data/spec/spec/matchers/be_spec.rb +261 -10
  268. data/spec/spec/matchers/change_spec.rb +178 -61
  269. data/spec/spec/matchers/compatibility_spec.rb +28 -0
  270. data/spec/spec/matchers/description_generation_spec.rb +47 -46
  271. data/spec/spec/matchers/dsl_spec.rb +34 -0
  272. data/spec/spec/matchers/eql_spec.rb +14 -9
  273. data/spec/spec/matchers/equal_spec.rb +43 -14
  274. data/spec/spec/matchers/exist_spec.rb +41 -24
  275. data/spec/spec/matchers/has_spec.rb +154 -1
  276. data/spec/spec/matchers/have_spec.rb +311 -189
  277. data/spec/spec/matchers/include_spec.rb +45 -2
  278. data/spec/spec/matchers/match_array_spec.rb +115 -0
  279. data/spec/spec/matchers/match_spec.rb +25 -5
  280. data/spec/spec/matchers/matcher_spec.rb +289 -0
  281. data/spec/spec/matchers/matchers_spec.rb +2 -0
  282. data/spec/spec/matchers/operator_matcher_spec.rb +48 -15
  283. data/spec/spec/matchers/raise_exception_spec.rb +345 -0
  284. data/spec/spec/matchers/respond_to_spec.rb +78 -16
  285. data/spec/spec/matchers/satisfy_spec.rb +1 -1
  286. data/spec/spec/matchers/simple_matcher_spec.rb +100 -0
  287. data/spec/spec/matchers/throw_symbol_spec.rb +111 -41
  288. data/spec/spec/mocks/and_yield_spec.rb +117 -0
  289. data/spec/spec/mocks/any_number_of_times_spec.rb +9 -2
  290. data/spec/spec/mocks/argument_expectation_spec.rb +19 -15
  291. data/spec/spec/mocks/argument_matchers_spec.rb +19 -0
  292. data/spec/spec/mocks/at_least_spec.rb +2 -2
  293. data/spec/spec/mocks/at_most_spec.rb +3 -3
  294. data/spec/spec/mocks/bug_report_10260_spec.rb +1 -1
  295. data/spec/spec/mocks/bug_report_10263_spec.rb +27 -0
  296. data/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
  297. data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
  298. data/spec/spec/mocks/bug_report_496_spec.rb +17 -0
  299. data/spec/spec/mocks/bug_report_600_spec.rb +22 -0
  300. data/spec/spec/mocks/bug_report_7611_spec.rb +2 -2
  301. data/spec/spec/mocks/bug_report_7805_spec.rb +2 -2
  302. data/spec/spec/mocks/bug_report_8165_spec.rb +4 -4
  303. data/spec/spec/mocks/bug_report_8302_spec.rb +2 -2
  304. data/spec/spec/mocks/bug_report_830_spec.rb +21 -0
  305. data/spec/spec/mocks/double_spec.rb +12 -0
  306. data/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
  307. data/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
  308. data/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
  309. data/spec/spec/mocks/mock_ordering_spec.rb +15 -5
  310. data/spec/spec/mocks/mock_space_spec.rb +1 -1
  311. data/spec/spec/mocks/mock_spec.rb +346 -129
  312. data/spec/spec/mocks/multiple_return_value_spec.rb +9 -9
  313. data/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  314. data/spec/spec/mocks/null_object_mock_spec.rb +15 -1
  315. data/spec/spec/mocks/once_counts_spec.rb +2 -2
  316. data/spec/spec/mocks/options_hash_spec.rb +19 -17
  317. data/spec/spec/mocks/partial_mock_spec.rb +124 -12
  318. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +2 -2
  319. data/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
  320. data/spec/spec/mocks/precise_counts_spec.rb +2 -2
  321. data/spec/spec/mocks/record_messages_spec.rb +2 -2
  322. data/spec/spec/mocks/stub_chain_spec.rb +42 -0
  323. data/spec/spec/mocks/stub_implementation_spec.rb +31 -0
  324. data/spec/spec/mocks/stub_spec.rb +147 -103
  325. data/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
  326. data/spec/spec/mocks/twice_counts_spec.rb +2 -2
  327. data/spec/spec/mocks/unstub_spec.rb +127 -0
  328. data/spec/spec/package/bin_spec_spec.rb +11 -7
  329. data/spec/spec/rake/spectask_spec.rb +150 -0
  330. data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
  331. data/spec/spec/runner/command_line_spec.rb +158 -29
  332. data/spec/spec/runner/configuration_spec.rb +320 -0
  333. data/spec/spec/runner/drb_command_line_spec.rb +137 -72
  334. data/spec/spec/runner/empty_file.txt +0 -0
  335. data/spec/spec/runner/example_group_runner_spec.rb +26 -0
  336. data/spec/spec/runner/examples.txt +2 -0
  337. data/spec/spec/runner/failed.txt +3 -0
  338. data/spec/spec/runner/formatter/base_formatter_spec.rb +30 -0
  339. data/spec/spec/runner/formatter/base_text_formatter_spec.rb +113 -0
  340. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
  341. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +17 -12
  342. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +377 -0
  343. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +377 -0
  344. data/spec/spec/runner/formatter/html_formatted-1.8.7.html +377 -0
  345. data/spec/spec/runner/formatter/html_formatted-1.9.1.html +377 -0
  346. data/spec/spec/runner/formatter/html_formatter_spec.rb +112 -52
  347. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +329 -0
  348. data/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
  349. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +87 -16
  350. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +14 -7
  351. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +153 -50
  352. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +371 -0
  353. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +371 -0
  354. data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +371 -0
  355. data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +371 -0
  356. data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +106 -0
  357. data/spec/spec/runner/heckle_runner_spec.rb +32 -17
  358. data/spec/spec/runner/heckler_spec.rb +17 -11
  359. data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +70 -0
  360. data/spec/spec/runner/line_number_query_spec.rb +129 -0
  361. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +27 -21
  362. data/spec/spec/runner/option_parser_spec.rb +367 -164
  363. data/spec/spec/runner/options_spec.rb +506 -94
  364. data/spec/spec/runner/output_one_time_fixture.rb +7 -0
  365. data/spec/spec/runner/output_one_time_fixture_runner.rb +7 -0
  366. data/spec/spec/runner/output_one_time_spec.rb +15 -0
  367. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +94 -27
  368. data/spec/spec/runner/reporter_spec.rb +212 -121
  369. data/spec/spec/runner/resources/a_bar.rb +0 -0
  370. data/spec/spec/runner/resources/a_foo.rb +0 -0
  371. data/spec/spec/runner/resources/a_spec.rb +1 -0
  372. data/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
  373. data/spec/spec/runner/resources/utf8_encoded.rb +8 -0
  374. data/spec/spec/runner/spec.opts +2 -0
  375. data/spec/spec/runner/spec_drb.opts +2 -0
  376. data/spec/spec/runner/spec_spaced.opts +2 -0
  377. data/spec/spec/runner_spec.rb +13 -0
  378. data/spec/spec.opts +6 -0
  379. data/spec/spec_helper.rb +87 -45
  380. data/spec/support/macros.rb +29 -0
  381. data/spec/{spec → support}/spec_classes.rb +26 -4
  382. metadata +461 -141
  383. data/CHANGES +0 -748
  384. data/EXAMPLES.rd +0 -108
  385. data/README +0 -70
  386. data/UPGRADE +0 -31
  387. data/bin/spec_translator +0 -8
  388. data/examples/auto_spec_description_example.rb +0 -19
  389. data/examples/before_and_after_example.rb +0 -39
  390. data/examples/behave_as_example.rb +0 -45
  391. data/examples/dynamic_spec.rb +0 -9
  392. data/examples/helper_method_example.rb +0 -11
  393. data/examples/legacy_spec.rb +0 -10
  394. data/examples/not_yet_implemented_spec.rb +0 -12
  395. data/examples/priority.txt +0 -1
  396. data/examples/spec_helper.rb +0 -1
  397. data/examples/test_case_adapter_example.rb +0 -26
  398. data/examples/test_case_spec.rb +0 -65
  399. data/lib/spec/dsl/behaviour.rb +0 -204
  400. data/lib/spec/dsl/behaviour_callbacks.rb +0 -77
  401. data/lib/spec/dsl/behaviour_eval.rb +0 -177
  402. data/lib/spec/dsl/behaviour_factory.rb +0 -42
  403. data/lib/spec/dsl/composite_proc_builder.rb +0 -28
  404. data/lib/spec/dsl/configuration.rb +0 -119
  405. data/lib/spec/dsl/description.rb +0 -46
  406. data/lib/spec/dsl/example.rb +0 -127
  407. data/lib/spec/dsl/example_matcher.rb +0 -28
  408. data/lib/spec/dsl/example_should_raise_handler.rb +0 -74
  409. data/lib/spec/expectations/differs/default.rb +0 -61
  410. data/lib/spec/expectations/extensions/object.rb +0 -66
  411. data/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
  412. data/lib/spec/extensions/object.rb +0 -6
  413. data/lib/spec/extensions.rb +0 -1
  414. data/lib/spec/matchers/raise_error.rb +0 -100
  415. data/lib/spec/mocks/argument_constraint_matchers.rb +0 -12
  416. data/lib/spec/mocks/spec_methods.rb +0 -30
  417. data/lib/spec/runner/behaviour_runner.rb +0 -102
  418. data/lib/spec/runner/extensions/object.rb +0 -32
  419. data/lib/spec/runner/formatter/failing_behaviours_formatter.rb +0 -25
  420. data/lib/spec/runner/formatter/rdoc_formatter.rb +0 -24
  421. data/lib/spec/runner/formatter.rb +0 -9
  422. data/lib/spec/runner/spec_parser.rb +0 -50
  423. data/lib/spec/test_case_adapter.rb +0 -10
  424. data/lib/spec/translator.rb +0 -106
  425. data/plugins/mock_frameworks/flexmock.rb +0 -27
  426. data/plugins/mock_frameworks/rspec.rb +0 -18
  427. data/spec/spec/dsl/behaviour_factory_spec.rb +0 -30
  428. data/spec/spec/dsl/behaviour_spec.rb +0 -604
  429. data/spec/spec/dsl/composite_proc_builder_spec.rb +0 -57
  430. data/spec/spec/dsl/configuration_spec.rb +0 -50
  431. data/spec/spec/dsl/description_spec.rb +0 -81
  432. data/spec/spec/dsl/example_class_spec.rb +0 -24
  433. data/spec/spec/dsl/example_instance_spec.rb +0 -162
  434. data/spec/spec/dsl/example_should_raise_spec.rb +0 -137
  435. data/spec/spec/dsl/predicate_matcher_spec.rb +0 -21
  436. data/spec/spec/dsl/shared_behaviour_spec.rb +0 -208
  437. data/spec/spec/matchers/handler_spec.rb +0 -88
  438. data/spec/spec/matchers/matcher_methods_spec.rb +0 -78
  439. data/spec/spec/matchers/raise_error_spec.rb +0 -147
  440. data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +0 -73
  441. data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +0 -92
  442. data/spec/spec/runner/behaviour_runner_spec.rb +0 -118
  443. data/spec/spec/runner/context_matching_spec.rb +0 -27
  444. data/spec/spec/runner/execution_context_spec.rb +0 -31
  445. data/spec/spec/runner/extensions/kernel_spec.rb +0 -36
  446. data/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +0 -27
  447. data/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +0 -21
  448. data/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +0 -36
  449. data/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +0 -19
  450. data/spec/spec/runner/formatter/rdoc_formatter_spec.rb +0 -46
  451. data/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +0 -21
  452. data/spec/spec/runner/object_ext_spec.rb +0 -11
  453. data/spec/spec/runner/spec_matcher_spec.rb +0 -102
  454. data/spec/spec/runner/spec_parser_spec.rb +0 -93
  455. data/spec/spec/translator_spec.rb +0 -216
  456. /data/examples/{custom_expectation_matchers.rb → passing/custom_matchers.rb} +0 -0
@@ -1,6 +1,6 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
1
+ require 'spec_helper'
2
2
 
3
- describe "Spec::Expectations.fail_with with no diff" do
3
+ describe Spec::Expectations, "#fail_with with no diff" do
4
4
  before(:each) do
5
5
  @old_differ = Spec::Expectations.differ
6
6
  Spec::Expectations.differ = nil
@@ -12,18 +12,25 @@ describe "Spec::Expectations.fail_with with no diff" do
12
12
  }.should fail_with("the message")
13
13
  end
14
14
 
15
- it "should handle an Array" do
16
- lambda {
17
- Spec::Expectations.fail_with ["the message","expected","actual"]
18
- }.should fail_with("the message")
19
- end
20
-
21
15
  after(:each) do
22
16
  Spec::Expectations.differ = @old_differ
23
17
  end
24
18
  end
25
19
 
26
- describe "Spec::Expectations.fail_with with diff" do
20
+ describe Spec::Expectations, "#fail_with with Array" do
21
+ before(:each) do
22
+ Spec.stub!(:warn)
23
+ end
24
+
25
+ it "is deprecated" do
26
+ Spec.should_receive(:warn)
27
+ lambda {
28
+ Spec::Expectations.fail_with ["message", "expected", "actual"]
29
+ }.should raise_error
30
+ end
31
+ end
32
+
33
+ describe Spec::Expectations, "#fail_with with diff" do
27
34
  before(:each) do
28
35
  @old_differ = Spec::Expectations.differ
29
36
  @differ = mock("differ")
@@ -40,31 +47,49 @@ describe "Spec::Expectations.fail_with with diff" do
40
47
  @differ.should_receive(:diff_as_string).and_return("diff")
41
48
  lambda {
42
49
  Spec::Expectations.fail_with "the message", "expected", "actual"
43
- }.should fail_with("the message\nDiff:diff")
50
+ }.should fail_with("the message\n\n Diff:diff")
44
51
  end
45
52
 
46
53
  it "should call differ if expected/actual are not strings" do
47
54
  @differ.should_receive(:diff_as_object).and_return("diff")
48
55
  lambda {
49
56
  Spec::Expectations.fail_with "the message", :expected, :actual
50
- }.should fail_with("the message\nDiff:diff")
57
+ }.should fail_with("the message\n\n Diff:diff")
58
+ end
59
+
60
+ it "should call differ if expected/actual are both hashes" do
61
+ @differ.should_receive(:diff_as_hash).and_return("diff")
62
+ lambda {
63
+ Spec::Expectations.fail_with "the message", {:a => :b}, {:a => 'b'}
64
+ }.should fail_with("the message\n\n Diff:diff")
51
65
  end
52
66
 
53
67
  it "should not call differ if expected or actual are procs" do
54
68
  @differ.should_not_receive(:diff_as_string)
55
69
  @differ.should_not_receive(:diff_as_object)
70
+ @differ.should_not_receive(:diff_as_hash)
56
71
  lambda {
57
72
  Spec::Expectations.fail_with "the message", lambda {}, lambda {}
58
73
  }.should fail_with("the message")
59
74
  end
60
-
61
- it "should call differ if expected/actual are presented in an Array with message" do
62
- @differ.should_receive(:diff_as_string).with("actual","expected").and_return("diff")
75
+
76
+ after(:each) do
77
+ Spec::Expectations.differ = @old_differ
78
+ end
79
+ end
80
+
81
+ describe Spec::Expectations, "#fail_with with a nil message" do
82
+ before(:each) do
83
+ @old_differ = Spec::Expectations.differ
84
+ Spec::Expectations.differ = nil
85
+ end
86
+
87
+ it "should handle just a message" do
63
88
  lambda {
64
- Spec::Expectations.fail_with(["the message", "expected", "actual"])
65
- }.should fail_with(/the message\nDiff:diff/)
89
+ Spec::Expectations.fail_with nil
90
+ }.should raise_error(ArgumentError, /Failure message is nil\. Does your matcher define the appropriate failure_message_for_\* method to return a string\?/)
66
91
  end
67
-
92
+
68
93
  after(:each) do
69
94
  Spec::Expectations.differ = @old_differ
70
95
  end
@@ -0,0 +1,206 @@
1
+ require 'spec_helper'
2
+
3
+ module ExampleExpectations
4
+
5
+ class ArbitraryMatcher
6
+ def initialize(*args, &block)
7
+ if args.last.is_a? Hash
8
+ @expected = args.last[:expected]
9
+ end
10
+ @expected = block.call if block
11
+ @block = block
12
+ end
13
+
14
+ def matches?(target)
15
+ @target = target
16
+ return @expected == target
17
+ end
18
+
19
+ def with(new_value)
20
+ @expected = new_value
21
+ self
22
+ end
23
+
24
+ def failure_message
25
+ "expected #{@expected}, got #{@target}"
26
+ end
27
+
28
+ def negative_failure_message
29
+ "expected not #{@expected}, got #{@target}"
30
+ end
31
+ end
32
+
33
+ class PositiveOnlyMatcher < ArbitraryMatcher
34
+ undef negative_failure_message rescue nil
35
+ end
36
+
37
+ def arbitrary_matcher(*args, &block)
38
+ ArbitraryMatcher.new(*args, &block)
39
+ end
40
+
41
+ def positive_only_matcher(*args, &block)
42
+ PositiveOnlyMatcher.new(*args, &block)
43
+ end
44
+
45
+ end
46
+
47
+ module Spec
48
+ module Expectations
49
+ describe PositiveExpectationHandler do
50
+ describe "#handle_matcher" do
51
+ it "asks the matcher if it matches" do
52
+ matcher = mock("matcher")
53
+ actual = Object.new
54
+ matcher.should_receive(:matches?).with(actual).and_return(true)
55
+ Spec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher)
56
+ end
57
+
58
+ it "returns the match value" do
59
+ matcher = mock("matcher")
60
+ actual = Object.new
61
+ matcher.should_receive(:matches?).with(actual).and_return(:this_value)
62
+ Spec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher).should == :this_value
63
+ end
64
+
65
+ it "calls failure_message_for_should if the matcher implements it" do
66
+ matcher = mock("matcher", :failure_message_for_should => "message", :matches? => false)
67
+ actual = Object.new
68
+
69
+ ::Spec::Expectations.should_receive(:fail_with).with("message")
70
+
71
+ Spec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher)
72
+ end
73
+
74
+ it "calls fail if matcher.diffable?" do
75
+ matcher = mock("matcher",
76
+ :diffable? => true,
77
+ :failure_message_for_should => "message",
78
+ :matches? => false,
79
+ :expected => [1],
80
+ :actual => 2
81
+ )
82
+ actual = Object.new
83
+
84
+ ::Spec::Expectations.should_receive(:fail_with).with("message", 1, 2)
85
+
86
+ Spec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher)
87
+ end
88
+
89
+ it "calls failure_message if the matcher does not implement failure_message_for_should" do
90
+ matcher = mock("matcher", :failure_message => "message", :matches? => false)
91
+ actual = Object.new
92
+
93
+ ::Spec::Expectations.should_receive(:fail_with).with("message")
94
+
95
+ Spec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher)
96
+
97
+ end
98
+
99
+ it "appends the :or message in the options hash passed to should" do
100
+ matcher = mock("matcher", :failure_message_for_should => "message", :matches? => false)
101
+ actual = Object.new
102
+
103
+ ::Spec::Expectations.should_receive(:fail_with).with("custom")
104
+
105
+ Spec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher, "custom")
106
+ end
107
+ end
108
+ end
109
+
110
+ describe NegativeExpectationHandler do
111
+ describe "#handle_matcher" do
112
+ it "asks the matcher if it doesn't match when the matcher responds to #does_not_match?" do
113
+ matcher = mock("matcher", :does_not_match? => true, :negative_failure_message => nil)
114
+ actual = Object.new
115
+ matcher.should_receive(:does_not_match?).with(actual).and_return(true)
116
+ Spec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher)
117
+ end
118
+
119
+ it "asks the matcher if it matches when the matcher doesn't respond to #does_not_match?" do
120
+ matcher = mock("matcher")
121
+ actual = Object.new
122
+ matcher.stub!(:negative_failure_message)
123
+ matcher.should_receive(:matches?).with(actual).and_return(false)
124
+ Spec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher)
125
+ end
126
+
127
+ it "returns the match value" do
128
+ matcher = mock("matcher")
129
+ actual = Object.new
130
+ matcher.should_receive(:matches?).with(actual).and_return(false)
131
+ matcher.stub!(:negative_failure_message).and_return("ignore")
132
+ Spec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher).should be_false
133
+ end
134
+
135
+
136
+ it "calls failure_message_for_should_not if the matcher implements it" do
137
+ matcher = mock("matcher", :failure_message_for_should_not => "message", :matches? => true)
138
+ actual = Object.new
139
+
140
+ ::Spec::Expectations.should_receive(:fail_with).with("message")
141
+
142
+ Spec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher)
143
+
144
+ end
145
+
146
+ it "calls negative_failure_message if the matcher does not implement failure_message_for_should_not" do
147
+ matcher = mock("matcher", :negative_failure_message => "message", :matches? => true)
148
+ actual = Object.new
149
+
150
+ ::Spec::Expectations.should_receive(:fail_with).with("message")
151
+
152
+ Spec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher)
153
+
154
+ end
155
+
156
+
157
+ it "calls fail if matcher.diffable?" do
158
+ matcher = mock("matcher",
159
+ :diffable? => true,
160
+ :failure_message_for_should_not => "message",
161
+ :matches? => true,
162
+ :expected => [1],
163
+ :actual => 2
164
+ )
165
+ actual = Object.new
166
+
167
+ ::Spec::Expectations.should_receive(:fail_with).with("message", 1, 2)
168
+
169
+ Spec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher)
170
+ end
171
+
172
+ it "appends the :or message in the options hash passed to should" do
173
+ matcher = mock("matcher", :failure_message_for_should_not => "message", :matches? => true)
174
+ actual = Object.new
175
+
176
+ ::Spec::Expectations.should_receive(:fail_with).with("custom")
177
+
178
+ Spec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher, "custom")
179
+ end
180
+
181
+ end
182
+ end
183
+
184
+ describe PositiveExpectationHandler do
185
+ include ExampleExpectations
186
+
187
+ it "should handle submitted args" do
188
+ 5.should arbitrary_matcher(:expected => 5)
189
+ 5.should arbitrary_matcher(:expected => "wrong").with(5)
190
+ lambda { 5.should arbitrary_matcher(:expected => 4) }.should fail_with("expected 4, got 5")
191
+ lambda { 5.should arbitrary_matcher(:expected => 5).with(4) }.should fail_with("expected 4, got 5")
192
+ 5.should_not arbitrary_matcher(:expected => 4)
193
+ 5.should_not arbitrary_matcher(:expected => 5).with(4)
194
+ lambda { 5.should_not arbitrary_matcher(:expected => 5) }.should fail_with("expected not 5, got 5")
195
+ lambda { 5.should_not arbitrary_matcher(:expected => 4).with(5) }.should fail_with("expected not 5, got 5")
196
+ end
197
+
198
+ it "should handle the submitted block" do
199
+ 5.should arbitrary_matcher { 5 }
200
+ 5.should arbitrary_matcher(:expected => 4) { 5 }
201
+ 5.should arbitrary_matcher(:expected => 4).with(5) { 3 }
202
+ end
203
+
204
+ end
205
+ end
206
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ module Matchers
5
+ describe "wrap_expectation" do
6
+ before { Spec.stub(:deprecate) }
7
+
8
+ def stub_matcher
9
+ @_stub_matcher ||= simple_matcher do
10
+ end
11
+ end
12
+
13
+ def failing_matcher
14
+ @_failing_matcher ||= simple_matcher do
15
+ 1.should == 2
16
+ end
17
+ end
18
+
19
+ it "should return true if there is no error" do
20
+ wrap_expectation stub_matcher do
21
+ end.should be_true
22
+ end
23
+
24
+ it "should return false if there is an error" do
25
+ wrap_expectation failing_matcher do
26
+ raise "error"
27
+ end.should be_false
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,10 @@
1
+ rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
2
+ $:.unshift rspec_lib unless $:.include?(rspec_lib)
3
+ require 'spec/autorun'
4
+ require 'spec/test/unit'
5
+
6
+ describe "example group with failures" do
7
+ it "should fail" do
8
+ false.should be_true
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
2
+ $:.unshift rspec_lib unless $:.include?(rspec_lib)
3
+ require 'spec/autorun'
4
+ require 'spec/test/unit'
5
+
6
+ describe "example group with passing examples" do
7
+ it "should pass" do
8
+ true.should be_true
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
2
+ $:.unshift rspec_lib unless $:.include?(rspec_lib)
3
+ require 'spec/autorun'
4
+ require 'spec/test/unit'
5
+
6
+ describe "example group with errors" do
7
+ it "should raise errors" do
8
+ raise "error raised in example group with errors"
9
+ end
10
+ end
@@ -0,0 +1,13 @@
1
+ rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
2
+ $:.unshift rspec_lib unless $:.include?(rspec_lib)
3
+ require 'spec/autorun'
4
+ require 'spec/test/unit'
5
+
6
+ describe "options hash" do
7
+ describe "#options" do
8
+ it "should expose the options hash" do
9
+ group = describe("group", :this => 'hash') {}
10
+ group.options[:this].should == 'hash'
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,10 @@
1
+ rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
2
+ $:.unshift rspec_lib unless $:.include?(rspec_lib)
3
+ require 'spec/autorun'
4
+ require 'spec/test/unit'
5
+
6
+ class TestCaseThatFails < Test::Unit::TestCase
7
+ def test_that_fails
8
+ false.should be_true
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
2
+ $:.unshift rspec_lib unless $:.include?(rspec_lib)
3
+ require 'spec/autorun'
4
+ require 'spec/test/unit'
5
+
6
+ class TestCaseThatPasses < Test::Unit::TestCase
7
+ def test_that_passes
8
+ true.should be_true
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
2
+ $:.unshift rspec_lib unless $:.include?(rspec_lib)
3
+ require 'spec/autorun'
4
+ require 'spec/test/unit'
5
+
6
+ class TestCaseWithErrors < Test::Unit::TestCase
7
+ def test_with_error
8
+ raise "error raised in TestCaseWithErrors"
9
+ end
10
+ end
@@ -0,0 +1,22 @@
1
+ rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
2
+ $:.unshift rspec_lib unless $:.include?(rspec_lib)
3
+ require 'spec/autorun'
4
+ require 'spec/test/unit'
5
+
6
+ class TestCaseThatPasses < Test::Unit::TestCase
7
+ def test_should_allow_underscore
8
+ assert true
9
+ end
10
+
11
+ def testShouldAllowUppercaseLetter
12
+ assert true
13
+ end
14
+
15
+ def testshouldallowlowercaseletter
16
+ assert true
17
+ end
18
+
19
+ define_method :"test: should allow punctuation" do
20
+ assert true
21
+ end
22
+ end
@@ -0,0 +1,38 @@
1
+ rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib"
2
+ $:.unshift rspec_lib unless $:.include?(rspec_lib)
3
+ require 'spec/autorun'
4
+ require 'spec/test/unit'
5
+
6
+ module Test
7
+ module Unit
8
+ describe TestSuiteAdapter do
9
+ def create_adapter(group)
10
+ TestSuiteAdapter.new(group)
11
+ end
12
+
13
+ describe "#size" do
14
+ it "should return the number of examples in the example group" do
15
+ group = Class.new(Spec::ExampleGroup) do
16
+ describe("some examples")
17
+ it("bar") {}
18
+ it("baz") {}
19
+ end
20
+ adapter = create_adapter(group)
21
+ adapter.size.should == 2
22
+ end
23
+ end
24
+
25
+ describe "#delete" do
26
+ it "should do nothing" do
27
+ group = Class.new(Spec::ExampleGroup) do
28
+ describe("Some Examples")
29
+ it("does something") {}
30
+ end
31
+ adapter = create_adapter(group)
32
+ adapter.delete(adapter.examples.first)
33
+ adapter.should be_empty
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec/interop/test/unit/test_unit_spec_helper'
2
+
3
+ describe "ExampleGroup with test/unit/interop" do
4
+ include TestUnitSpecHelper
5
+
6
+ describe "with passing examples" do
7
+ it "should output 0 failures" do
8
+ output = ruby("'#{resources}/spec_that_passes.rb'")
9
+ output.should include("1 example, 0 failures")
10
+ end
11
+
12
+ it "should return an exit code of 0" do
13
+ ruby("'#{resources}/spec_that_passes.rb'")
14
+ $?.should == 0
15
+ end
16
+ end
17
+
18
+ describe "with failing examples" do
19
+ it "should output 1 failure" do
20
+ output = ruby("'#{resources}/spec_that_fails.rb'")
21
+ output.should include("1 example, 1 failure")
22
+ end
23
+
24
+ it "should return an exit code of 256" do
25
+ ruby("'#{resources}/spec_that_fails.rb'")
26
+ $?.should == 256
27
+ end
28
+ end
29
+
30
+ describe "with example that raises an error" do
31
+ it "should output 1 failure" do
32
+ output = ruby("'#{resources}/spec_with_errors.rb'")
33
+ output.should include("1 example, 1 failure")
34
+ end
35
+
36
+ it "should return an exit code of 256" do
37
+ ruby("'#{resources}/spec_with_errors.rb'")
38
+ $?.should == 256
39
+ end
40
+ end
41
+
42
+ describe "options hash" do
43
+ it "should be exposed" do
44
+ output = ruby("'#{resources}/spec_with_options_hash.rb'")
45
+ output.should include("1 example, 0 failures")
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+ require 'ruby_forker'
3
+
4
+ module TestUnitSpecHelper
5
+ include RubyForker
6
+
7
+ def resources
8
+ File.dirname(__FILE__) + "/resources"
9
+ end
10
+
11
+ def run_script(file_name)
12
+ output = ruby(file_name)
13
+ if !$?.success? || output.include?("FAILED") || output.include?("Error")
14
+ raise output
15
+ end
16
+ output
17
+ end
18
+ end
@@ -0,0 +1,50 @@
1
+ require 'spec/interop/test/unit/test_unit_spec_helper'
2
+
3
+ describe "Test::Unit::TestCase" do
4
+ include TestUnitSpecHelper
5
+
6
+ before(:each) do
7
+ @dir = File.dirname(__FILE__) + "/resources"
8
+ end
9
+
10
+ describe "with passing test case" do
11
+ it "should output 0 failures" do
12
+ output = ruby("'#{@dir}/test_case_that_passes.rb'")
13
+ output.should include("1 example, 0 failures")
14
+ end
15
+
16
+ it "should return an exit code of 0" do
17
+ ruby("'#{@dir}/test_case_that_passes.rb'")
18
+ $?.should == 0
19
+ end
20
+ end
21
+
22
+ describe "with failing test case" do
23
+ it "should output 1 failure" do
24
+ output = ruby("'#{@dir}/test_case_that_fails.rb'")
25
+ output.should include("1 example, 1 failure")
26
+ end
27
+
28
+ it "should return an exit code of 256" do
29
+ ruby("'#{@dir}/test_case_that_fails.rb'")
30
+ $?.should == 256
31
+ end
32
+ end
33
+
34
+ describe "with test case that raises an error" do
35
+ it "should output 1 failure" do
36
+ output = ruby("'#{@dir}/test_case_with_errors.rb'")
37
+ output.should include("1 example, 1 failure")
38
+ end
39
+
40
+ it "should return an exit code of 256" do
41
+ ruby("'#{@dir}/test_case_with_errors.rb'")
42
+ $?.should == 256
43
+ end
44
+ end
45
+
46
+ it "should find all Test::Unit test methods" do
47
+ output = ruby("'#{@dir}/test_case_with_various_names.rb'")
48
+ output.should include("4 examples, 0 failures")
49
+ end
50
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec/interop/test/unit/test_unit_spec_helper'
2
+
3
+ describe "TestSuiteAdapter" do
4
+ include TestUnitSpecHelper
5
+ it "should pass" do
6
+ dir = File.dirname(__FILE__)
7
+ run_script "'#{dir}/resources/testsuite_adapter_spec_with_test_unit.rb'"
8
+ end
9
+ end