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,50 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
-
3
- module Spec
4
- module DSL
5
- describe Configuration do
6
- before(:each) do
7
- @config = Configuration.new
8
- @behaviour = mock("behaviour")
9
- end
10
-
11
- it "should default mock framework to rspec" do
12
- @config.mock_framework.should =~ /\/plugins\/mock_frameworks\/rspec$/
13
- end
14
-
15
- it "should let you set rspec mocking explicitly" do
16
- @config.mock_with(:rspec)
17
- @config.mock_framework.should =~ /\/plugins\/mock_frameworks\/rspec$/
18
- end
19
-
20
- it "should let you set mocha" do
21
- @config.mock_with(:mocha)
22
- @config.mock_framework.should =~ /\/plugins\/mock_frameworks\/mocha$/
23
- end
24
-
25
- it "should let you set flexmock" do
26
- @config.mock_with(:flexmock)
27
- @config.mock_framework.should =~ /\/plugins\/mock_frameworks\/flexmock$/
28
- end
29
-
30
- it "should let you set an arbitrary adapter module" do
31
- adapter = Module.new
32
- @config.mock_with(adapter)
33
- @config.mock_framework.should == adapter
34
- end
35
-
36
- it "should let you define modules to be included" do
37
- mod = Module.new
38
- @config.include mod
39
- @config.included_modules.should include(mod)
40
- end
41
-
42
- [:prepend_before, :append_before, :prepend_after, :append_after].each do |m|
43
- it "should delegate ##{m} to Behaviour class" do
44
- Behaviour.should_receive(m).with(:whatever)
45
- @config.__send__(m, :whatever)
46
- end
47
- end
48
- end
49
- end
50
- end
@@ -1,81 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
2
-
3
- module Spec
4
- module DSL
5
- describe Description, " constructed with a single String" do
6
- before(:each) {@description = Description.new("abc")}
7
-
8
- it "should provide that string as its name" do
9
- @description.description.should == "abc"
10
- end
11
- it "should provide nil as its type" do
12
- @description.described_type.should be_nil
13
- end
14
- it "should respond to []" do
15
- @description[:key].should be_nil
16
- end
17
- it "should respond to []=" do
18
- @description[:key] = :value
19
- @description[:key].should == :value
20
- end
21
- it "should return for == when value matches description" do
22
- @description.should == "abc"
23
- end
24
- it "should return for == when value is other description that matches description" do
25
- @description.should == Description.new("abc")
26
- end
27
- end
28
-
29
- describe Description, " constructed with a Type" do
30
- before(:each) {@description = Description.new(Behaviour)}
31
-
32
- it "should provide a String representation of that type (fully qualified) as its name" do
33
- @description.description.should == "Spec::DSL::Behaviour"
34
- end
35
- it "should provide that type (fully qualified) as its type" do
36
- @description.described_type.should == Spec::DSL::Behaviour
37
- end
38
- end
39
-
40
- describe Description, " constructed with a Type and a String" do
41
- before(:each) {@description = Description.new(Behaviour, " behaving")}
42
-
43
- it "should include the type and second String in its name" do
44
- @description.description.should == "Spec::DSL::Behaviour behaving"
45
- end
46
- it "should provide that type (fully qualified) as its type" do
47
- @description.described_type.should == Spec::DSL::Behaviour
48
- end
49
- end
50
-
51
- describe Description, "constructed with a Type and a String not starting with a space" do
52
- before(:each) {@description = Description.new(Behaviour, "behaving")}
53
-
54
- it "should include the type and second String with a space in its name" do
55
- @description.description.should == "Spec::DSL::Behaviour behaving"
56
- end
57
- end
58
-
59
- describe Description, "constructed with a Type and a String starting with a ." do
60
- before(:each) {@description = Description.new(Behaviour, ".behaving")}
61
-
62
- it "should include the type and second String with a space in its name" do
63
- @description.description.should == "Spec::DSL::Behaviour.behaving"
64
- end
65
- end
66
-
67
- describe Description, "constructed with a Type and a String starting with a #" do
68
- before(:each) {@description = Description.new(Behaviour, "#behaving")}
69
-
70
- it "should include the type and second String with a space in its name" do
71
- @description.description.should == "Spec::DSL::Behaviour#behaving"
72
- end
73
- end
74
-
75
- describe Description, " constructed with options" do before(:each) {@description = Description.new(Behaviour, :a => "b")}
76
- it "should provide its options" do
77
- @description[:a].should == "b"
78
- end
79
- end
80
- end
81
- end
@@ -1,24 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
-
3
- module Spec
4
- module DSL
5
- describe Example, " class" do
6
-
7
- def run(example)
8
- example.run(@reporter, nil, nil, nil, Object.new)
9
- end
10
-
11
- before do
12
- @reporter = stub("reporter", :example_started => nil, :example_finished => nil)
13
- @example_class = Example.dup
14
- end
15
-
16
- it "should report errors in example" do
17
- error = Exception.new
18
- @reporter.should_receive(:example_finished).with("example", error, "example", false)
19
-
20
- run(@example_class.new("example") {raise(error)})
21
- end
22
- end
23
- end
24
- end
@@ -1,162 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
-
3
- module Spec
4
- module DSL
5
- describe Example, " instance" do
6
- # TODO - this should be
7
- # predicate_matchers :is_a
8
- def is_a(error)
9
- be_is_a(error)
10
- end
11
-
12
- before do
13
- @reporter = stub("reporter", :example_started => nil, :example_finished => nil)
14
- end
15
-
16
- it "should send reporter example_started" do
17
- example=Example.new("example") {}
18
- @reporter.should_receive(:example_started).with("example")
19
- example.run(@reporter, nil, nil, false, nil)
20
- end
21
-
22
- it "should report its name for dry run" do
23
- example=Example.new("example") {}
24
- @reporter.should_receive(:example_finished).with("example")
25
- example.run(@reporter, nil, nil, true, nil) #4th arg indicates dry run
26
- end
27
-
28
- it "should report success" do
29
- example=Example.new("example") {}
30
- @reporter.should_receive(:example_finished).with("example", nil, nil, false)
31
- example.run(@reporter, nil, nil, nil, nil)
32
- end
33
-
34
- it "should report failure due to failure" do
35
- example=Example.new("example") do
36
- (2+2).should == 5
37
- end
38
- @reporter.should_receive(:example_finished).with("example", is_a(Spec::Expectations::ExpectationNotMetError), "example", false)
39
- example.run(@reporter, nil, nil, nil, nil)
40
- end
41
-
42
- it "should report failure due to error" do
43
- error=RuntimeError.new
44
- example=Example.new("example") do
45
- raise(error)
46
- end
47
- @reporter.should_receive(:example_finished).with("example", error, "example", false)
48
- example.run(@reporter, nil, nil, nil, nil)
49
- end
50
-
51
- it "should run example in scope of supplied object" do
52
- scope_class = Class.new
53
- example=Example.new("should pass") do
54
- self.instance_of?(Example).should == false
55
- self.instance_of?(scope_class).should == true
56
- end
57
- @reporter.should_receive(:example_finished).with("should pass", nil, nil, false)
58
- example.run(@reporter, nil, nil, nil, scope_class.new)
59
- end
60
-
61
- it "should not run example block if before_each fails" do
62
- example_ran = false
63
- example=Example.new("should pass") {example_ran = true}
64
- before_each = lambda {raise "Setup error"}
65
- example.run(@reporter, before_each, nil, nil, Object.new)
66
- example_ran.should == false
67
- end
68
-
69
- it "should run after_each block if before_each fails" do
70
- after_each_ran = false
71
- example=Example.new("should pass") {}
72
- before_each = lambda {raise "Setup error"}
73
- after_each = lambda {after_each_ran = true}
74
- example.run(@reporter, before_each, after_each, nil, Object.new)
75
- after_each_ran.should == true
76
- end
77
-
78
- it "should run after_each block when example fails" do
79
- example=Example.new("example") do
80
- raise("in body")
81
- end
82
- after_each=lambda do
83
- raise("in after_each")
84
- end
85
- @reporter.should_receive(:example_finished) do |example, error, location|
86
- example.should eql("example")
87
- location.should eql("example")
88
- error.message.should eql("in body")
89
- end
90
- example.run(@reporter, nil, after_each, nil, nil)
91
- end
92
-
93
- it "should report failure location when in before_each" do
94
- example=Example.new("example") {}
95
- before_each=lambda { raise("in before_each") }
96
- @reporter.should_receive(:example_finished) do |name, error, location|
97
- name.should eql("example")
98
- error.message.should eql("in before_each")
99
- location.should eql("before(:each)")
100
- end
101
- example.run(@reporter, before_each, nil, nil, nil)
102
- end
103
-
104
- it "should report failure location when in after_each" do
105
- example = Example.new("example") {}
106
- after_each = lambda { raise("in after_each") }
107
- @reporter.should_receive(:example_finished) do |name, error, location|
108
- name.should eql("example")
109
- error.message.should eql("in after_each")
110
- location.should eql("after(:each)")
111
- end
112
- example.run(@reporter, nil, after_each, nil, nil)
113
- end
114
-
115
- it "should accept an options hash following the example name" do
116
- example = Example.new("name", :key => 'value')
117
- end
118
-
119
- it "should report NO NAME when told to use generated description with --dry-run" do
120
- example = Example.new(:__generate_description) {
121
- 5.should == 5
122
- }
123
- @reporter.should_receive(:example_finished) do |desc, error, location|
124
- desc.should == "NO NAME (Because of --dry-run)"
125
- end
126
- example.run(@reporter, lambda{}, lambda{}, true, Object.new)
127
- end
128
-
129
- it "should report NO NAME when told to use generated description with no expectations" do
130
- example = Example.new(:__generate_description) {}
131
- @reporter.should_receive(:example_finished) do |desc, error, location|
132
- desc.should == "NO NAME (Because there were no expectations)"
133
- end
134
- example.run(@reporter, lambda{}, lambda{}, false, Object.new)
135
- end
136
-
137
- it "should report NO NAME when told to use generated description and matcher fails" do
138
- example = Example.new(:__generate_description) do
139
- 5.should "" # Has no matches? method..
140
- end
141
- @reporter.should_receive(:example_finished) do |desc, error, location|
142
- desc.should == "NO NAME (Because of Error raised in matcher)"
143
- end
144
- example.run(@reporter, nil, nil, nil, Object.new)
145
- end
146
-
147
- it "should report generated description when told to and it is available" do
148
- example = Example.new(:__generate_description) {
149
- 5.should == 5
150
- }
151
- @reporter.should_receive(:example_finished).with("should == 5", :anything, :anything, false)
152
- example.run(@reporter, nil, nil, nil, Object.new)
153
- end
154
-
155
- it "should unregister description_generated callback (lest a memory leak should build up)" do
156
- example = Example.new("something")
157
- Spec::Matchers.should_receive(:unregister_description_generated).with(is_a(Proc))
158
- example.run(@reporter, nil, nil, nil, Object.new)
159
- end
160
- end
161
- end
162
- end
@@ -1,137 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
-
3
- module Spec
4
- module DSL
5
- describe Example, " declared with {:should_raise => ...}" do
6
- before(:each) do
7
- @reporter = mock("reporter")
8
- @reporter.stub!(:example_started)
9
- end
10
-
11
- def verify_error(error, message=nil)
12
- error.should be_an_instance_of(Spec::Expectations::ExpectationNotMetError)
13
- unless message.nil?
14
- return error.message.should =~ message if Regexp === message
15
- return error.message.should == message
16
- end
17
- end
18
-
19
- it "true} should pass when there is an ExpectationNotMetError" do
20
- example = Spec::DSL:: Example.new("example", :should_raise => true) do
21
- raise Spec::Expectations::ExpectationNotMetError
22
- end
23
- @reporter.should_receive(:example_finished) do |description, error|
24
- error.should be_nil
25
- end
26
- example.run(@reporter, nil, nil, nil, nil)
27
- end
28
-
29
- it "true} should fail if nothing is raised" do
30
- example = Spec::DSL:: Example.new("example", :should_raise => true) {}
31
- @reporter.should_receive(:example_finished) do |example_name, error|
32
- verify_error(error, /example block expected Exception but nothing was raised/)
33
- end
34
- example.run(@reporter, nil, nil, nil, nil)
35
- end
36
-
37
- it "NameError} should pass when there is a NameError" do
38
- example = Spec::DSL:: Example.new("example", :should_raise => NameError) do
39
- raise NameError
40
- end
41
- @reporter.should_receive(:example_finished) do |example_name, error|
42
- error.should be_nil
43
- end
44
- example.run(@reporter, nil, nil, nil, nil)
45
- end
46
-
47
- it "NameError} should fail when there is no error" do
48
- example = Spec::DSL:: Example.new("example", :should_raise => NameError) do
49
- #do nothing
50
- end
51
- @reporter.should_receive(:example_finished) do |example_name, error|
52
- verify_error(error,/example block expected NameError but nothing was raised/)
53
- end
54
- example.run(@reporter, nil, nil, nil, nil)
55
- end
56
-
57
- it "NameError} should fail when there is the wrong error" do
58
- example = Spec::DSL:: Example.new("example", :should_raise => NameError) do
59
- raise RuntimeError
60
- end
61
- @reporter.should_receive(:example_finished) do |example_name, error|
62
- verify_error(error, /example block expected NameError but raised.+RuntimeError/)
63
- end
64
- example.run(@reporter, nil, nil, nil, nil)
65
- end
66
-
67
- it "[NameError]} should pass when there is a NameError" do
68
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError]) do
69
- raise NameError
70
- end
71
- @reporter.should_receive(:example_finished) do |description, error|
72
- error.should be_nil
73
- end
74
- example.run(@reporter, nil, nil, nil, nil)
75
- end
76
-
77
- it "[NameError]} should fail when there is no error" do
78
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError]) do
79
- end
80
- @reporter.should_receive(:example_finished) do |description, error|
81
- verify_error(error, /example block expected NameError but nothing was raised/)
82
- end
83
- example.run(@reporter, nil, nil, nil, nil)
84
- end
85
-
86
- it "[NameError]} should fail when there is the wrong error" do
87
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError]) do
88
- raise RuntimeError
89
- end
90
- @reporter.should_receive(:example_finished) do |description, error|
91
- verify_error(error, /example block expected NameError but raised.+RuntimeError/)
92
- end
93
- example.run(@reporter, nil, nil, nil, nil)
94
- end
95
-
96
- it "[NameError, 'message'} should pass when there is a NameError with the right message" do
97
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, 'expected']) do
98
- raise NameError, 'expected'
99
- end
100
- @reporter.should_receive(:example_finished) do |description, error|
101
- error.should be_nil
102
- end
103
- example.run(@reporter, nil, nil, nil, nil)
104
- end
105
-
106
- it "[NameError, 'message'} should pass when there is a NameError with a message matching a regex" do
107
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, /xpec/]) do
108
- raise NameError, 'expected'
109
- end
110
- @reporter.should_receive(:example_finished) do |description, error|
111
- error.should be_nil
112
- end
113
- example.run(@reporter, nil, nil, nil, nil)
114
- end
115
-
116
- it "[NameError, 'message'} should fail when there is a NameError with the wrong message" do
117
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, 'expected']) do
118
- raise NameError, 'wrong message'
119
- end
120
- @reporter.should_receive(:example_finished) do |description, error|
121
- verify_error(error, /example block expected #<NameError: expected> but raised #<NameError: wrong message>/)
122
- end
123
- example.run(@reporter, nil, nil, nil, nil)
124
- end
125
-
126
- it "[NameError, 'message'} should fail when there is a NameError with a message not matching regexp" do
127
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, /exp/]) do
128
- raise NameError, 'wrong message'
129
- end
130
- @reporter.should_receive(:example_finished) do |description, error|
131
- verify_error(error, /example block expected #<NameError: \(\?-mix:exp\)> but raised #<NameError: wrong message>/)
132
- end
133
- example.run(@reporter, nil, nil, nil, nil)
134
- end
135
- end
136
- end
137
- end
@@ -1,21 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
2
-
3
- module Spec
4
- module DSL
5
- class Fish
6
- def can_swim?(distance_in_yards)
7
- distance_in_yards < 1000
8
- end
9
- end
10
-
11
- describe "predicate_matcher[method_on_object] = matcher_method" do
12
- predicate_matchers[:swim] = :can_swim?
13
- it "should match matcher_method if method_on_object returns true" do
14
- swim(100).matches?(Fish.new).should be_true
15
- end
16
- it "should not match matcher_method if method_on_object returns false" do
17
- swim(10000).matches?(Fish.new).should be_false
18
- end
19
- end
20
- end
21
- end
@@ -1,208 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
2
-
3
- module Spec
4
- module DSL
5
- describe Behaviour, ", with :shared => true" do
6
-
7
- before do
8
- @formatter = Spec::Mocks::Mock.new("formatter", :null_object => true)
9
- @behaviour = behaviour_class.new("behaviour") {}
10
- end
11
-
12
- after do
13
- @formatter.rspec_verify
14
- @behaviour_class = nil
15
- $shared_behaviours.clear unless $shared_behaviours.nil?
16
- end
17
-
18
- def behaviour_class
19
- unless @behaviour_class
20
- @behaviour_class = Behaviour.dup
21
- # dup copies the class instance vars
22
- @behaviour_class.instance_variable_set(:@shared_behaviours, nil)
23
- end
24
- @behaviour_class
25
- end
26
-
27
- def make_shared_behaviour(name, opts, &block)
28
- behaviour = behaviour_class.new(name, opts, &block)
29
- behaviour_class.add_shared_behaviour(behaviour)
30
- behaviour
31
- end
32
-
33
- it "should accept an optional options hash" do
34
- lambda { behaviour_class.new("context") {} }.should_not raise_error(Exception)
35
- lambda { behaviour_class.new("context", :shared => true) {} }.should_not raise_error(Exception)
36
- end
37
-
38
- it "should return all shared behaviours" do
39
- make_shared_behaviour("b1", :shared => true) {}
40
- make_shared_behaviour("b2", :shared => true) {}
41
-
42
- behaviour_class.find_shared_behaviour("b1").should_not be_nil
43
- behaviour_class.find_shared_behaviour("b2").should_not be_nil
44
- end
45
-
46
- it "should be shared when configured as shared" do
47
- behaviour = make_shared_behaviour("context", :shared => true) {}
48
- behaviour.should be_shared
49
- end
50
-
51
- it "should not be shared when not configured as shared" do
52
- @behaviour.should_not be_shared
53
- end
54
-
55
- it "should raise if run when shared" do
56
- behaviour = make_shared_behaviour("context", :shared => true) {}
57
- $spec_ran = false
58
- behaviour.it("test") {$spec_ran = true}
59
- lambda { behaviour.run(@formatter) }.should raise_error
60
- $spec_ran.should be_false
61
- end
62
-
63
- it "should contain examples when shared" do
64
- shared_behaviour = make_shared_behaviour("shared behaviour", :shared => true) {}
65
- shared_behaviour.it("shared example") {}
66
- shared_behaviour.number_of_examples.should == 1
67
- end
68
-
69
- it "should complain when adding a second shared behaviour with the same description" do
70
- make_shared_behaviour("shared behaviour", :shared => true) {}
71
- lambda { make_shared_behaviour("shared behaviour", :shared => true) {} }.should raise_error(ArgumentError)
72
- end
73
-
74
- it "should NOT complain when adding a the same shared behaviour again (i.e. file gets reloaded)" do
75
- behaviour = behaviour_class.new("shared behaviour", :shared => true) {}
76
- behaviour_class.add_shared_behaviour(behaviour)
77
- behaviour_class.add_shared_behaviour(behaviour)
78
- end
79
-
80
- it "should add examples to current behaviour when calling it_should_behave_like" do
81
- shared_behaviour = make_shared_behaviour("shared behaviour", :shared => true) {}
82
- shared_behaviour.it("shared example") {}
83
- shared_behaviour.it("shared example 2") {}
84
-
85
- @behaviour.it("example") {}
86
- @behaviour.number_of_examples.should == 1
87
- @behaviour.it_should_behave_like("shared behaviour")
88
- @behaviour.number_of_examples.should == 3
89
- end
90
-
91
- it "should run shared examples" do
92
- shared_example_ran = false
93
- shared_behaviour = make_shared_behaviour("shared behaviour", :shared => true) {}
94
- shared_behaviour.it("shared example") { shared_example_ran = true }
95
-
96
- example_ran = false
97
-
98
- @behaviour.it_should_behave_like("shared behaviour")
99
- @behaviour.it("example") {example_ran = true}
100
- @behaviour.run(@formatter)
101
- example_ran.should be_true
102
- shared_example_ran.should be_true
103
- end
104
-
105
- it "should run setup and teardown from shared behaviour" do
106
- shared_setup_ran = false
107
- shared_teardown_ran = false
108
- shared_behaviour = make_shared_behaviour("shared behaviour", :shared => true) {}
109
- shared_behaviour.before { shared_setup_ran = true }
110
- shared_behaviour.after { shared_teardown_ran = true }
111
- shared_behaviour.it("shared example") { shared_example_ran = true }
112
-
113
- example_ran = false
114
-
115
- @behaviour.it_should_behave_like("shared behaviour")
116
- @behaviour.it("example") {example_ran = true}
117
- @behaviour.run(@formatter)
118
- example_ran.should be_true
119
- shared_setup_ran.should be_true
120
- shared_teardown_ran.should be_true
121
- end
122
-
123
- it "should run before(:all) and after(:all) only once from shared behaviour" do
124
- shared_before_all_run_count = 0
125
- shared_after_all_run_count = 0
126
- shared_behaviour = make_shared_behaviour("shared behaviour", :shared => true) {}
127
- shared_behaviour.before(:all) { shared_before_all_run_count += 1}
128
- shared_behaviour.after(:all) { shared_after_all_run_count += 1}
129
- shared_behaviour.it("shared example") { shared_example_ran = true }
130
-
131
- example_ran = false
132
-
133
- @behaviour.it_should_behave_like("shared behaviour")
134
- @behaviour.it("example") {example_ran = true}
135
- @behaviour.run(@formatter)
136
- example_ran.should be_true
137
- shared_before_all_run_count.should == 1
138
- shared_after_all_run_count.should == 1
139
- end
140
-
141
- it "should include modules, included into shared behaviour, into current behaviour" do
142
- @formatter.should_receive(:add_behaviour).with :any_args
143
- @formatter.should_receive(:example_finished).twice.with :any_args
144
-
145
- shared_behaviour = make_shared_behaviour("shared behaviour", :shared => true) {}
146
- shared_behaviour.it("shared example") { shared_example_ran = true }
147
-
148
- mod1_method_called = false
149
- mod1 = Module.new do
150
- define_method :mod1_method do
151
- mod1_method_called = true
152
- end
153
- end
154
-
155
- mod2_method_called = false
156
- mod2 = Module.new do
157
- define_method :mod2_method do
158
- mod2_method_called = true
159
- end
160
- end
161
-
162
- shared_behaviour.include mod2
163
-
164
- @behaviour.it_should_behave_like("shared behaviour")
165
- @behaviour.include mod1
166
-
167
- @behaviour.it("test") do
168
- mod1_method
169
- mod2_method
170
- end
171
- @behaviour.run(@formatter)
172
- mod1_method_called.should be_true
173
- mod2_method_called.should be_true
174
- end
175
-
176
- it "should make methods defined in the shared behaviour available in consuming behaviour" do
177
- shared_behaviour = make_shared_behaviour("shared behaviour xyz", :shared => true) do
178
- def a_shared_helper_method
179
- "this got defined in a shared behaviour"
180
- end
181
- end
182
- @behaviour.it_should_behave_like("shared behaviour xyz")
183
- success = false
184
- @behaviour.it("should access a_shared_helper_method") do
185
- a_shared_helper_method
186
- success = true
187
- end
188
- @behaviour.run(@formatter)
189
- success.should be_true
190
- end
191
-
192
- it "should error if told to inherit from a class" do
193
- shared_behaviour = make_shared_behaviour("shared behaviour", :shared => true) {}
194
- shared_behaviour.it("shared example") { shared_example_ran = true }
195
- lambda { shared_behaviour.inherit Object }.should raise_error(ArgumentError)
196
- end
197
-
198
- it "should raise when named shared behaviour can not be found" do
199
- begin
200
- @behaviour.it_should_behave_like("non-existent shared behaviour")
201
- violated
202
- rescue => e
203
- e.message.should == "Shared Behaviour 'non-existent shared behaviour' can not be found"
204
- end
205
- end
206
- end
207
- end
208
- end