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,81 +1,146 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
-
3
- describe "DrbCommandLine without running local server" do
4
-
5
- unless Config::CONFIG['ruby_install_name'] == 'jruby'
6
- it "should print error when there is no running local server" do
7
- err = StringIO.new
8
- out = StringIO.new
9
- Spec::Runner::DrbCommandLine.run(['--version'], err, out, false)
10
-
11
- err.rewind
12
- err.read.should =~ /No server is running/
13
- end
14
- end
15
- end
1
+ require 'spec_helper'
16
2
 
17
- describe "DrbCommandLine with local server" do
3
+ module Spec
4
+ module Runner
5
+ unless jruby?
6
+ describe DrbCommandLine do
18
7
 
19
- unless Config::CONFIG['ruby_install_name'] == 'jruby'
20
- before(:all) do
21
- DRb.start_service("druby://localhost:8989", Spec::Runner::CommandLine)
22
- $drb_example_file_counter = 0
23
- end
24
-
25
- before(:each) do
26
- create_dummy_spec_file
27
- $drb_example_file_counter = $drb_example_file_counter + 1
28
- end
29
-
30
- after(:each) do
31
- File.delete(@dummy_spec_filename)
32
- end
33
-
34
- after(:all) do
35
- DRb.stop_service
36
- end
8
+ context "without server running" do
9
+ it "prints error" do
10
+ err = out = StringIO.new
11
+ DrbCommandLine.run(OptionParser.parse(['--version'], err, out))
37
12
 
38
- it "should run against local server" do
39
- out = run_spec_via_druby(['--version'])
40
- out.should =~ /RSpec/n
41
- end
42
-
43
- it "should output green colorized text when running with --colour option" do
44
- out = run_spec_via_druby(["--colour", @dummy_spec_filename])
45
- out.should =~ /\e\[32m/n
46
- end
47
-
48
- it "should output red colorized text when running with -c option" do
49
- out = run_spec_via_druby(["-c", @dummy_spec_filename])
50
- out.should =~ /\e\[31m/n
51
- end
13
+ err.rewind
14
+ err.read.should =~ /No server is running/
15
+ end
16
+
17
+ it "returns nil" do
18
+ err = out = StringIO.new
19
+ result = DrbCommandLine.run(OptionParser.parse(['--version'], err, out))
20
+ result.should be_false
21
+ end
22
+ end
52
23
 
53
- def create_dummy_spec_file
54
- @dummy_spec_filename = File.expand_path(File.dirname(__FILE__)) + "/_dummy_spec#{$drb_example_file_counter}.rb"
55
- File.open(@dummy_spec_filename, 'w') do |f|
56
- f.write %{
57
- describe "DUMMY CONTEXT for 'DrbCommandLine with -c option'" do
58
- it "should be output with green bar" do
59
- true.should be_true
60
- end
24
+ context "with server running" do
25
+ class ::CommandLineForDrbSpec
26
+ def self.run(argv, stderr, stdout)
27
+ orig_options = Spec::Runner.options
28
+ tmp_options = Spec::Runner::OptionParser.parse(argv, stderr, stdout)
29
+ Spec::Runner.use tmp_options
30
+ Spec::Runner::CommandLine.run(tmp_options)
31
+ ensure
32
+ Spec::Runner.use orig_options
33
+ end
34
+ end
61
35
 
62
- it "should be output with red bar" do
63
- violated("I want to see a red bar!")
64
- end
65
- end
66
- }
67
- end
68
- end
69
-
70
- def run_spec_via_druby(args)
71
- err, out = StringIO.new, StringIO.new
72
- out.instance_eval do
73
- def tty?; true end
36
+ before(:all) do
37
+ DRb.start_service("druby://127.0.0.1:8989", ::CommandLineForDrbSpec)
38
+ @@drb_example_file_counter = 0
39
+ end
40
+
41
+ before(:each) do
42
+ create_dummy_spec_file
43
+ @@drb_example_file_counter = @@drb_example_file_counter + 1
44
+ end
45
+
46
+ after(:each) do
47
+ File.delete(@dummy_spec_filename)
48
+ end
49
+
50
+ after(:all) do
51
+ DRb.stop_service
52
+ end
53
+
54
+ it "returns true" do
55
+ err = out = StringIO.new
56
+ result = DrbCommandLine.run(OptionParser.parse(['--version'], err, out))
57
+ result.should be_true
58
+ end
59
+
60
+ it "should run against local server" do
61
+ out = run_spec_via_druby(['--version'])
62
+ out.should =~ /rspec \d+\.\d+\.\d+.*/n
63
+ end
64
+
65
+ it "should output green colorized text when running with --colour option" do
66
+ out = run_spec_via_druby(["--colour", @dummy_spec_filename])
67
+ out.should =~ /\e\[32m/n
68
+ end
69
+
70
+ it "should output red colorized text when running with -c option" do
71
+ out = run_spec_via_druby(["-c", @dummy_spec_filename])
72
+ out.should =~ /\e\[31m/n
73
+ end
74
+
75
+ def create_dummy_spec_file
76
+ @dummy_spec_filename = File.expand_path(File.dirname(__FILE__)) + "/_dummy_spec#{@@drb_example_file_counter}.rb"
77
+ File.open(@dummy_spec_filename, 'w') do |f|
78
+ f.write %{
79
+ describe "DUMMY CONTEXT for 'DrbCommandLine with -c option'" do
80
+ it "should be output with green bar" do
81
+ true.should be_true
82
+ end
83
+
84
+ it "should be output with red bar" do
85
+ violated("I want to see a red bar!")
86
+ end
87
+ end
88
+ }
89
+ end
90
+ end
91
+
92
+ def run_spec_via_druby(argv)
93
+ err, out = StringIO.new, StringIO.new
94
+ out.instance_eval do
95
+ def tty?; true end
96
+ end
97
+ options = ::Spec::Runner::Options.new(err, out)
98
+ options.argv = argv
99
+ Spec::Runner::DrbCommandLine.run(options)
100
+ out.rewind; out.read
101
+ end
102
+ end
103
+
104
+ context "#port" do
105
+ before do
106
+ @options = stub("options", :drb_port => nil)
107
+ end
108
+
109
+ context "with no additional configuration" do
110
+ it "defaults to 8989" do
111
+ Spec::Runner::DrbCommandLine.port(@options).should == 8989
112
+ end
113
+ end
114
+
115
+ context "with RSPEC_DRB environment variable set" do
116
+ def with_RSPEC_DRB_set_to(val)
117
+ original = ENV['RSPEC_DRB']
118
+ begin
119
+ ENV['RSPEC_DRB'] = val
120
+ yield
121
+ ensure
122
+ ENV['RSPEC_DRB'] = original
123
+ end
124
+ end
125
+
126
+ it "uses RSPEC_DRB value" do
127
+ with_RSPEC_DRB_set_to('9000') do
128
+ Spec::Runner::DrbCommandLine.port(@options).should == 9000
129
+ end
130
+ end
131
+
132
+ context "and config variable set" do
133
+ it "uses configured value" do
134
+ @options.stub(:drb_port => '5000')
135
+ with_RSPEC_DRB_set_to('9000') do
136
+ Spec::Runner::DrbCommandLine.port(@options).should == 5000
137
+ end
138
+ end
139
+ end
140
+
141
+ end
142
+ end
74
143
  end
75
- Spec::Runner::DrbCommandLine.run(args, err, out, false, true)
76
- out.rewind; out.read
77
144
  end
78
145
  end
79
-
80
146
  end
81
-
File without changes
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ module Runner
5
+ describe ExampleGroupRunner do
6
+ before(:each) do
7
+ err = StringIO.new('')
8
+ out = StringIO.new('')
9
+ @options = Options.new(err, out)
10
+ @runner = Spec::Runner::ExampleGroupRunner.new(@options)
11
+ end
12
+
13
+ after(:each) do
14
+ Spec::Expectations.differ = nil
15
+ end
16
+
17
+ describe "#load_files" do
18
+ it "should load UTF-8 encoded files" do
19
+ file = File.expand_path(File.dirname(__FILE__) + "/resources/utf8_encoded.rb")
20
+ @options.files << file
21
+ @runner.load_files(@options.files_to_load).should == @options.files_to_load
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,2 @@
1
+ Sir, if you were my husband, I would poison your drink.
2
+ Madam, if you were my wife, I would drink it.
@@ -0,0 +1,3 @@
1
+ heckler_spec.rb
2
+ command_line_spec.rb
3
+ reporter_spec.rb
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ module Spec
4
+ module Runner
5
+ module Formatter
6
+ describe BaseFormatter do
7
+ subject { BaseFormatter.new(nil,nil) }
8
+ it {should respond_to(:start ).with(1).argument }
9
+ it {should respond_to(:example_group_started).with(1).argument }
10
+ it {should respond_to(:example_started ).with(1).argument }
11
+ # -3 indicates that one of the arguments is optional, with a default
12
+ # value assigned. This is due to deprecated_pending_location. Once
13
+ # that is removed, this should be changed to 2.
14
+ it {should respond_to(:example_pending ).with(-3).arguments}
15
+ it {should respond_to(:example_passed ).with(1).argument }
16
+ it {should respond_to(:example_failed ).with(3).arguments}
17
+ it {should respond_to(:start_dump ).with(0).arguments}
18
+ it {should respond_to(:dump_failure ).with(2).arguments}
19
+ it {should respond_to(:dump_summary ).with(4).arguments}
20
+ it {should respond_to(:dump_pending ).with(0).arguments}
21
+ it {should respond_to(:close ).with(0).arguments}
22
+
23
+ it "deprecates add_example_group" do
24
+ Spec.should_receive(:deprecate)
25
+ subject.add_example_group(stub('example group'))
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,113 @@
1
+ require 'spec_helper'
2
+ require 'spec/runner/formatter/base_text_formatter'
3
+
4
+ module Spec
5
+ module Runner
6
+ module Formatter
7
+ describe BaseTextFormatter do
8
+
9
+ before :all do
10
+ @sandbox = "spec/sandbox"
11
+ end
12
+
13
+ it "should create the directory contained in WHERE if it does not exist" do
14
+ FileUtils.should_receive(:mkdir_p).with(@sandbox)
15
+ File.stub!(:open)
16
+ BaseTextFormatter.new({},"#{@sandbox}/temp.rb")
17
+ end
18
+
19
+ context "(deprecations)" do
20
+ before(:each) do
21
+ Kernel.stub!(:warn)
22
+ @io = StringIO.new
23
+ @options = mock('options')
24
+ @options.stub!(:dry_run).and_return(false)
25
+ @options.stub!(:colour).and_return(false)
26
+ @options.stub!(:autospec).and_return(false)
27
+ @formatter = Class.new(BaseTextFormatter) do
28
+ def method_that_class_magenta(message)
29
+ magenta(message)
30
+ end
31
+ def method_that_class_colourise(message, failure)
32
+ colourise(message, failure)
33
+ end
34
+ end.new(@options, @io)
35
+ @failure = stub('failure', :pending_fixed? => false)
36
+ end
37
+
38
+ context "#colourise" do
39
+ it "warns when subclasses call colourise" do
40
+ Spec.should_receive(:deprecate)
41
+ @formatter.method_that_class_colourise('this message', @failure)
42
+ end
43
+
44
+ it "delegates to colorize_failure" do
45
+ @formatter.should_receive(:colorize_failure).with('this message', @failure)
46
+ @formatter.colourise('this message', @failure)
47
+ end
48
+ end
49
+
50
+ context "#magenta" do
51
+ it "warns when subclasses call magenta" do
52
+ Spec.should_receive(:deprecate).with(/#magenta/)
53
+ @formatter.method_that_class_magenta('this message')
54
+ end
55
+
56
+ it "delegates to red" do
57
+ @formatter.should_receive(:red).with('this message')
58
+ @formatter.method_that_class_magenta('this message')
59
+ end
60
+ end
61
+
62
+ end
63
+
64
+ describe "#colour (protected)" do
65
+ before(:each) do
66
+ @original_RSPEC_COLOR = ENV['RSPEC_COLOR']
67
+ end
68
+
69
+ it "does not colorize when output_to_file? returns true" do
70
+ out = StringIO.new
71
+ options = stub('options', :colour => true, :autospec => false)
72
+ formatter = BaseTextFormatter.new(options,out)
73
+ formatter.stub!(:output_to_tty?).and_return(true)
74
+ formatter.stub!(:output_to_file?).and_return(true)
75
+ formatter.__send__(:colour, 'foo', "\e[32m").should == "foo"
76
+ end
77
+
78
+ it "colorizes when colour? and output_to_tty? return true" do
79
+ out = StringIO.new
80
+ options = stub('options', :colour => true, :autospec => false)
81
+ formatter = BaseTextFormatter.new(options,out)
82
+ formatter.stub!(:output_to_tty?).and_return(true)
83
+ formatter.__send__(:colour, 'foo', "\e[32m").should == "\e[32mfoo\e[0m"
84
+ end
85
+
86
+ it "colorizes when ENV['RSPEC_COLOR'] is set even if colour? and output_to_tty? return false" do
87
+ out = StringIO.new
88
+ options = stub('options', :colour => false)
89
+ formatter = BaseTextFormatter.new(options,out)
90
+ formatter.stub!(:output_to_tty?).and_return(false)
91
+
92
+ ENV['RSPEC_COLOR'] = 'true'
93
+
94
+ formatter.__send__(:colour, 'foo', "\e[32m").should == "\e[32mfoo\e[0m"
95
+ end
96
+
97
+ it "colorizes when autospec? is true even if colour? and output_to_tty? return false" do
98
+ out = StringIO.new
99
+ options = stub('options', :colour => true, :autospec => true)
100
+ formatter = BaseTextFormatter.new(options,out)
101
+ formatter.stub!(:output_to_tty?).and_return(false)
102
+
103
+ formatter.__send__(:colour, 'foo', "\e[32m").should == "\e[32mfoo\e[0m"
104
+ end
105
+
106
+ after(:each) do
107
+ ENV['RSPEC_COLOR'] = @original_RSPEC_COLOR
108
+ end
109
+ end
110
+ end
111
+ end
112
+ end
113
+ end
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+ require 'spec/runner/formatter/failing_example_groups_formatter'
3
+
4
+ module Spec
5
+ module Runner
6
+ module Formatter
7
+ describe FailingExampleGroupsFormatter do
8
+ attr_reader :example_group, :formatter, :io
9
+
10
+ before(:each) do
11
+ @io = StringIO.new
12
+ options = mock('options')
13
+ @formatter = FailingExampleGroupsFormatter.new(options, io)
14
+ @example_group = Class.new(::Spec::Example::ExampleGroup)
15
+ end
16
+
17
+ it "should add example name for each failure" do
18
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(Class.new(::Spec::Example::ExampleGroupDouble).describe("b 1")))
19
+ formatter.example_failed("e 1", nil, Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
20
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(Class.new(::Spec::Example::ExampleGroupDouble).describe("b 2")))
21
+ formatter.example_failed("e 2", nil, Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
22
+ formatter.example_failed("e 3", nil, Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
23
+ io.string.should include("b 1")
24
+ io.string.should include("b 2")
25
+ end
26
+
27
+ it "should delimit ExampleGroup superclass descriptions with :" do
28
+ parent_example_group = Class.new(example_group).describe("Parent")
29
+ child_example_group = Class.new(parent_example_group).describe("#child_method")
30
+ grand_child_example_group = Class.new(child_example_group).describe("GrandChild")
31
+
32
+ formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(grand_child_example_group))
33
+ formatter.example_failed("failure", nil, ::Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
34
+ io.string.should == "Parent#child_method GrandChild\n"
35
+ end
36
+
37
+ it "should remove druby url, which is used by Spec::Distributed" do
38
+ @formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(Class.new(::Spec::Example::ExampleGroupDouble).describe("something something (druby://99.99.99.99:99)")))
39
+ @formatter.example_failed("e 1", nil, ::Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
40
+ io.string.should == "something something\n"
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -1,28 +1,33 @@
1
- require File.dirname(__FILE__) + '/../../../spec_helper.rb'
1
+ require 'spec_helper'
2
+ require 'spec/runner/formatter/failing_examples_formatter'
2
3
 
3
4
  module Spec
4
5
  module Runner
5
6
  module Formatter
6
- describe "FailingExamplesFormatter" do
7
+ describe FailingExamplesFormatter do
7
8
  before(:each) do
8
9
  @io = StringIO.new
9
- @formatter = FailingExamplesFormatter.new(@io)
10
+ options = mock('options')
11
+ @formatter = FailingExamplesFormatter.new(options, @io)
10
12
  end
11
13
 
12
14
  it "should add example name for each failure" do
13
- @formatter.add_behaviour("b 1")
14
- @formatter.example_failed("e 1", nil, Reporter::Failure.new(nil, RuntimeError.new))
15
- @formatter.add_behaviour("b 2")
16
- @formatter.example_failed("e 2", nil, Reporter::Failure.new(nil, RuntimeError.new))
17
- @formatter.example_failed("e 3", nil, Reporter::Failure.new(nil, RuntimeError.new))
15
+ example_group_1 = Class.new(::Spec::Example::ExampleGroupDouble).describe("A")
16
+ example_group_2 = Class.new(example_group_1).describe("B")
17
+
18
+ @formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group_1))
19
+ @formatter.example_failed(example_group_1.it("a1"){}, nil, ::Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
20
+ @formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group_2))
21
+ @formatter.example_failed(example_group_2.it("b2"){}, nil, ::Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
22
+ @formatter.example_failed(example_group_2.it("b3"){}, nil, ::Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new))
18
23
  @io.string.should eql(<<-EOF
19
- b 1 e 1
20
- b 2 e 2
21
- b 2 e 3
24
+ A a1
25
+ A B b2
26
+ A B b3
22
27
  EOF
23
28
  )
24
29
  end
25
30
  end
26
31
  end
27
32
  end
28
- end
33
+ end