rspec 1.3.2 → 2.0.0.a2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. data/.document +4 -6
  2. data/.gitignore +4 -14
  3. data/License.txt +1 -1
  4. data/README.markdown +46 -0
  5. data/Rakefile +26 -100
  6. data/lib/rspec.rb +4 -0
  7. data/lib/rspec/version.rb +14 -0
  8. data/rspec.gemspec +46 -19
  9. metadata +72 -673
  10. data/.autotest +0 -5
  11. data/Gemfile +0 -20
  12. data/History.rdoc +0 -1560
  13. data/README.rdoc +0 -44
  14. data/Ruby1.9.rdoc +0 -31
  15. data/TODO.txt +0 -17
  16. data/Upgrade.rdoc +0 -260
  17. data/bin/autospec +0 -4
  18. data/bin/spec +0 -5
  19. data/cucumber.yml +0 -5
  20. data/example_spec.rb +0 -4
  21. data/examples/failing/README.txt +0 -11
  22. data/examples/failing/diffing_spec.rb +0 -36
  23. data/examples/failing/failing_implicit_docstrings_example.rb +0 -17
  24. data/examples/failing/failure_in_after.rb +0 -10
  25. data/examples/failing/failure_in_before.rb +0 -10
  26. data/examples/failing/mocking_example.rb +0 -38
  27. data/examples/failing/mocking_with_flexmock.rb +0 -26
  28. data/examples/failing/mocking_with_mocha.rb +0 -25
  29. data/examples/failing/mocking_with_rr.rb +0 -27
  30. data/examples/failing/partial_mock_example.rb +0 -18
  31. data/examples/failing/pending_example.rb +0 -7
  32. data/examples/failing/predicate_example.rb +0 -32
  33. data/examples/failing/raising_example.rb +0 -47
  34. data/examples/failing/syntax_error_example.rb +0 -7
  35. data/examples/failing/team_spec.rb +0 -41
  36. data/examples/failing/timeout_behaviour.rb +0 -5
  37. data/examples/passing/custom_formatter.rb +0 -11
  38. data/examples/passing/custom_matchers.rb +0 -54
  39. data/examples/passing/dynamic_spec.rb +0 -7
  40. data/examples/passing/file_accessor.rb +0 -18
  41. data/examples/passing/file_accessor_spec.rb +0 -37
  42. data/examples/passing/filtered_formatter.rb +0 -17
  43. data/examples/passing/filtered_formatter_example.rb +0 -31
  44. data/examples/passing/greeter_spec.rb +0 -30
  45. data/examples/passing/helper_method_example.rb +0 -12
  46. data/examples/passing/implicit_docstrings_example.rb +0 -16
  47. data/examples/passing/io_processor.rb +0 -8
  48. data/examples/passing/io_processor_spec.rb +0 -20
  49. data/examples/passing/mocking_example.rb +0 -25
  50. data/examples/passing/multi_threaded_example_group_runner.rb +0 -26
  51. data/examples/passing/nested_classes_example.rb +0 -35
  52. data/examples/passing/options_example.rb +0 -29
  53. data/examples/passing/options_formatter.rb +0 -20
  54. data/examples/passing/partial_mock_example.rb +0 -27
  55. data/examples/passing/pending_example.rb +0 -18
  56. data/examples/passing/predicate_example.rb +0 -25
  57. data/examples/passing/shared_example_group_example.rb +0 -43
  58. data/examples/passing/shared_stack_examples.rb +0 -36
  59. data/examples/passing/simple_matcher_example.rb +0 -29
  60. data/examples/passing/stack.rb +0 -36
  61. data/examples/passing/stack_spec.rb +0 -63
  62. data/examples/passing/stack_spec_with_nested_example_groups.rb +0 -66
  63. data/examples/passing/stubbing_example.rb +0 -67
  64. data/examples/passing/yielding_example.rb +0 -31
  65. data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +0 -85
  66. data/features-pending/cli/conditional_exclusion.feature +0 -39
  67. data/features-pending/heckle/heckle.feature +0 -56
  68. data/features/before_and_after_blocks/before_and_after_blocks.feature +0 -167
  69. data/features/command_line/line_number_option.feature +0 -56
  70. data/features/command_line/line_number_option_with_example_with_no_name.feature +0 -22
  71. data/features/example_groups/define_example_attribute.feature +0 -41
  72. data/features/example_groups/example_group_with_should_methods.feature +0 -29
  73. data/features/example_groups/implicit_docstrings.feature +0 -59
  74. data/features/example_groups/nested_groups.feature +0 -32
  75. data/features/expectations/customized_message.feature +0 -54
  76. data/features/expectations/expect_change.feature +0 -65
  77. data/features/expectations/expect_error.feature +0 -44
  78. data/features/extensions/custom_example_group.feature +0 -19
  79. data/features/formatters/custom_formatter.feature +0 -30
  80. data/features/formatters/nested_formatter.feature +0 -32
  81. data/features/interop/cucumber_stubs_dont_leak.feature +0 -11
  82. data/features/interop/examples_and_tests_together.feature +0 -84
  83. data/features/interop/rspec_output.feature +0 -25
  84. data/features/interop/test_but_not_test_unit.feature +0 -26
  85. data/features/interop/test_case_with_should_methods.feature +0 -46
  86. data/features/load_paths/add_lib_to_load_path.feature +0 -20
  87. data/features/load_paths/add_spec_to_load_path.feature +0 -20
  88. data/features/matchers/define_diffable_matcher.feature +0 -26
  89. data/features/matchers/define_matcher.feature +0 -179
  90. data/features/matchers/define_matcher_outside_rspec.feature +0 -37
  91. data/features/matchers/define_matcher_with_fluent_interface.feature +0 -48
  92. data/features/matchers/define_wrapped_matcher.feature +0 -56
  93. data/features/matchers/match_unless_raises.feature +0 -60
  94. data/features/matchers/match_unless_raises_unexpected_error.feature +0 -39
  95. data/features/mock_framework_integration/use_flexmock.feature +0 -27
  96. data/features/mock_framework_integration/use_mocha.feature +0 -27
  97. data/features/mock_framework_integration/use_rr.feature +0 -27
  98. data/features/mocks/block_local_expectations.feature +0 -62
  99. data/features/mocks/mix_stubs_and_mocks.feature +0 -22
  100. data/features/mocks/stub_implementation.feature +0 -26
  101. data/features/pending/pending_examples.feature +0 -81
  102. data/features/runner/specify_line_number.feature +0 -32
  103. data/features/spec_helper/spec_helper.feature +0 -25
  104. data/features/step_definitions/running_rspec_steps.rb +0 -52
  105. data/features/step_definitions/stubbing_steps.rb +0 -16
  106. data/features/subject/explicit_subject.feature +0 -31
  107. data/features/subject/implicit_subject.feature +0 -43
  108. data/features/support/env.rb +0 -83
  109. data/features/support/matchers/smart_match.rb +0 -31
  110. data/init.rb +0 -9
  111. data/lib/autotest/discover.rb +0 -3
  112. data/lib/autotest/rspec.rb +0 -54
  113. data/lib/spec.rb +0 -8
  114. data/lib/spec/adapters/mock_frameworks/flexmock.rb +0 -24
  115. data/lib/spec/adapters/mock_frameworks/mocha.rb +0 -25
  116. data/lib/spec/adapters/mock_frameworks/rr.rb +0 -22
  117. data/lib/spec/adapters/mock_frameworks/rspec.rb +0 -21
  118. data/lib/spec/autorun.rb +0 -3
  119. data/lib/spec/deprecation.rb +0 -41
  120. data/lib/spec/dsl.rb +0 -1
  121. data/lib/spec/dsl/main.rb +0 -93
  122. data/lib/spec/example.rb +0 -164
  123. data/lib/spec/example/args_and_options.rb +0 -27
  124. data/lib/spec/example/before_and_after_hooks.rb +0 -93
  125. data/lib/spec/example/errors.rb +0 -25
  126. data/lib/spec/example/example_group.rb +0 -10
  127. data/lib/spec/example/example_group_factory.rb +0 -82
  128. data/lib/spec/example/example_group_hierarchy.rb +0 -53
  129. data/lib/spec/example/example_group_methods.rb +0 -287
  130. data/lib/spec/example/example_group_proxy.rb +0 -61
  131. data/lib/spec/example/example_matcher.rb +0 -43
  132. data/lib/spec/example/example_methods.rb +0 -152
  133. data/lib/spec/example/example_proxy.rb +0 -41
  134. data/lib/spec/example/module_reopening_fix.rb +0 -43
  135. data/lib/spec/example/pending.rb +0 -18
  136. data/lib/spec/example/predicate_matchers.rb +0 -46
  137. data/lib/spec/example/shared_example_group.rb +0 -59
  138. data/lib/spec/example/subject.rb +0 -114
  139. data/lib/spec/expectations.rb +0 -35
  140. data/lib/spec/expectations/errors.rb +0 -12
  141. data/lib/spec/expectations/extensions.rb +0 -1
  142. data/lib/spec/expectations/extensions/kernel.rb +0 -52
  143. data/lib/spec/expectations/fail_with.rb +0 -45
  144. data/lib/spec/expectations/handler.rb +0 -50
  145. data/lib/spec/extensions/instance_exec.rb +0 -31
  146. data/lib/spec/interop/test.rb +0 -44
  147. data/lib/spec/interop/test/unit/autorunner.rb +0 -6
  148. data/lib/spec/interop/test/unit/testcase.rb +0 -56
  149. data/lib/spec/interop/test/unit/testresult.rb +0 -6
  150. data/lib/spec/interop/test/unit/testsuite_adapter.rb +0 -36
  151. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -61
  152. data/lib/spec/matchers.rb +0 -214
  153. data/lib/spec/matchers/be.rb +0 -249
  154. data/lib/spec/matchers/be_close.rb +0 -32
  155. data/lib/spec/matchers/be_instance_of.rb +0 -26
  156. data/lib/spec/matchers/be_kind_of.rb +0 -26
  157. data/lib/spec/matchers/change.rb +0 -151
  158. data/lib/spec/matchers/compatibility.rb +0 -14
  159. data/lib/spec/matchers/dsl.rb +0 -20
  160. data/lib/spec/matchers/eql.rb +0 -42
  161. data/lib/spec/matchers/equal.rb +0 -53
  162. data/lib/spec/matchers/errors.rb +0 -5
  163. data/lib/spec/matchers/exist.rb +0 -16
  164. data/lib/spec/matchers/generated_descriptions.rb +0 -36
  165. data/lib/spec/matchers/has.rb +0 -35
  166. data/lib/spec/matchers/have.rb +0 -152
  167. data/lib/spec/matchers/include.rb +0 -44
  168. data/lib/spec/matchers/match.rb +0 -21
  169. data/lib/spec/matchers/match_array.rb +0 -71
  170. data/lib/spec/matchers/matcher.rb +0 -132
  171. data/lib/spec/matchers/method_missing.rb +0 -9
  172. data/lib/spec/matchers/operator_matcher.rb +0 -83
  173. data/lib/spec/matchers/pretty.rb +0 -37
  174. data/lib/spec/matchers/raise_exception.rb +0 -131
  175. data/lib/spec/matchers/respond_to.rb +0 -71
  176. data/lib/spec/matchers/satisfy.rb +0 -47
  177. data/lib/spec/matchers/simple_matcher.rb +0 -134
  178. data/lib/spec/matchers/throw_symbol.rb +0 -100
  179. data/lib/spec/matchers/wrap_expectation.rb +0 -55
  180. data/lib/spec/mocks.rb +0 -200
  181. data/lib/spec/mocks/argument_expectation.rb +0 -51
  182. data/lib/spec/mocks/argument_matchers.rb +0 -237
  183. data/lib/spec/mocks/error_generator.rb +0 -92
  184. data/lib/spec/mocks/errors.rb +0 -10
  185. data/lib/spec/mocks/example_methods.rb +0 -69
  186. data/lib/spec/mocks/extensions.rb +0 -1
  187. data/lib/spec/mocks/extensions/object.rb +0 -3
  188. data/lib/spec/mocks/framework.rb +0 -15
  189. data/lib/spec/mocks/message_expectation.rb +0 -344
  190. data/lib/spec/mocks/methods.rb +0 -94
  191. data/lib/spec/mocks/mock.rb +0 -71
  192. data/lib/spec/mocks/order_group.rb +0 -29
  193. data/lib/spec/mocks/proxy.rb +0 -254
  194. data/lib/spec/mocks/space.rb +0 -28
  195. data/lib/spec/rake/spectask.rb +0 -230
  196. data/lib/spec/rake/verify_rcov.rb +0 -52
  197. data/lib/spec/ruby.rb +0 -9
  198. data/lib/spec/runner.rb +0 -66
  199. data/lib/spec/runner/backtrace_tweaker.rb +0 -78
  200. data/lib/spec/runner/class_and_arguments_parser.rb +0 -14
  201. data/lib/spec/runner/command_line.rb +0 -15
  202. data/lib/spec/runner/configuration.rb +0 -202
  203. data/lib/spec/runner/differs/default.rb +0 -93
  204. data/lib/spec/runner/differs/load-diff-lcs.rb +0 -12
  205. data/lib/spec/runner/drb_command_line.rb +0 -32
  206. data/lib/spec/runner/example_group_runner.rb +0 -58
  207. data/lib/spec/runner/extensions/kernel.rb +0 -9
  208. data/lib/spec/runner/formatter/base_formatter.rb +0 -139
  209. data/lib/spec/runner/formatter/base_text_formatter.rb +0 -142
  210. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -25
  211. data/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -20
  212. data/lib/spec/runner/formatter/html_formatter.rb +0 -338
  213. data/lib/spec/runner/formatter/nested_text_formatter.rb +0 -50
  214. data/lib/spec/runner/formatter/no_op_method_missing.rb +0 -21
  215. data/lib/spec/runner/formatter/profile_formatter.rb +0 -47
  216. data/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -33
  217. data/lib/spec/runner/formatter/silent_formatter.rb +0 -10
  218. data/lib/spec/runner/formatter/snippet_extractor.rb +0 -52
  219. data/lib/spec/runner/formatter/specdoc_formatter.rb +0 -33
  220. data/lib/spec/runner/formatter/text_mate_formatter.rb +0 -16
  221. data/lib/spec/runner/heckle_runner.rb +0 -77
  222. data/lib/spec/runner/heckle_runner_unsupported.rb +0 -10
  223. data/lib/spec/runner/line_number_query.rb +0 -78
  224. data/lib/spec/runner/option_parser.rb +0 -225
  225. data/lib/spec/runner/options.rb +0 -406
  226. data/lib/spec/runner/reporter.rb +0 -171
  227. data/lib/spec/stubs/cucumber.rb +0 -5
  228. data/lib/spec/test/unit.rb +0 -10
  229. data/lib/spec/version.rb +0 -14
  230. data/resources/helpers/cmdline.rb +0 -8
  231. data/resources/rake/examples.rake +0 -7
  232. data/resources/rake/examples_with_rcov.rake +0 -9
  233. data/resources/rake/failing_examples_with_html.rake +0 -9
  234. data/resources/rake/verify_rcov.rake +0 -7
  235. data/spec/README.jruby +0 -15
  236. data/spec/autotest/autotest_helper.rb +0 -8
  237. data/spec/autotest/autotest_matchers.rb +0 -38
  238. data/spec/autotest/discover_spec.rb +0 -8
  239. data/spec/autotest/failed_results_re_spec.rb +0 -31
  240. data/spec/autotest/rspec_spec.rb +0 -126
  241. data/spec/ruby_forker.rb +0 -13
  242. data/spec/spec.opts +0 -6
  243. data/spec/spec/dsl/main_spec.rb +0 -103
  244. data/spec/spec/example/example_group_class_definition_spec.rb +0 -51
  245. data/spec/spec/example/example_group_factory_spec.rb +0 -180
  246. data/spec/spec/example/example_group_methods_spec.rb +0 -778
  247. data/spec/spec/example/example_group_proxy_spec.rb +0 -107
  248. data/spec/spec/example/example_group_spec.rb +0 -632
  249. data/spec/spec/example/example_matcher_spec.rb +0 -85
  250. data/spec/spec/example/example_methods_spec.rb +0 -162
  251. data/spec/spec/example/example_proxy_spec.rb +0 -57
  252. data/spec/spec/example/helper_method_spec.rb +0 -24
  253. data/spec/spec/example/nested_example_group_spec.rb +0 -71
  254. data/spec/spec/example/pending_module_spec.rb +0 -58
  255. data/spec/spec/example/predicate_matcher_spec.rb +0 -41
  256. data/spec/spec/example/shared_example_group_spec.rb +0 -257
  257. data/spec/spec/example/subclassing_example_group_spec.rb +0 -25
  258. data/spec/spec/example/subject_spec.rb +0 -110
  259. data/spec/spec/expectations/differs/default_spec.rb +0 -194
  260. data/spec/spec/expectations/extensions/kernel_spec.rb +0 -45
  261. data/spec/spec/expectations/fail_with_spec.rb +0 -96
  262. data/spec/spec/expectations/handler_spec.rb +0 -206
  263. data/spec/spec/expectations/wrap_expectation_spec.rb +0 -31
  264. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
  265. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
  266. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
  267. data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +0 -13
  268. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
  269. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
  270. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
  271. data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +0 -22
  272. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
  273. data/spec/spec/interop/test/unit/spec_spec.rb +0 -48
  274. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -18
  275. data/spec/spec/interop/test/unit/testcase_spec.rb +0 -50
  276. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
  277. data/spec/spec/matchers/be_close_spec.rb +0 -50
  278. data/spec/spec/matchers/be_instance_of_spec.rb +0 -36
  279. data/spec/spec/matchers/be_kind_of_spec.rb +0 -33
  280. data/spec/spec/matchers/be_spec.rb +0 -460
  281. data/spec/spec/matchers/change_spec.rb +0 -349
  282. data/spec/spec/matchers/compatibility_spec.rb +0 -28
  283. data/spec/spec/matchers/description_generation_spec.rb +0 -160
  284. data/spec/spec/matchers/dsl_spec.rb +0 -34
  285. data/spec/spec/matchers/eql_spec.rb +0 -33
  286. data/spec/spec/matchers/equal_spec.rb +0 -57
  287. data/spec/spec/matchers/exist_spec.rb +0 -65
  288. data/spec/spec/matchers/has_spec.rb +0 -190
  289. data/spec/spec/matchers/have_spec.rb +0 -381
  290. data/spec/spec/matchers/include_spec.rb +0 -88
  291. data/spec/spec/matchers/match_array_spec.rb +0 -115
  292. data/spec/spec/matchers/match_spec.rb +0 -57
  293. data/spec/spec/matchers/matcher_spec.rb +0 -289
  294. data/spec/spec/matchers/matchers_spec.rb +0 -2
  295. data/spec/spec/matchers/operator_matcher_spec.rb +0 -191
  296. data/spec/spec/matchers/pretty_spec.rb +0 -22
  297. data/spec/spec/matchers/raise_exception_spec.rb +0 -345
  298. data/spec/spec/matchers/respond_to_spec.rb +0 -116
  299. data/spec/spec/matchers/satisfy_spec.rb +0 -36
  300. data/spec/spec/matchers/simple_matcher_spec.rb +0 -100
  301. data/spec/spec/matchers/throw_symbol_spec.rb +0 -121
  302. data/spec/spec/mocks/and_yield_spec.rb +0 -117
  303. data/spec/spec/mocks/any_number_of_times_spec.rb +0 -36
  304. data/spec/spec/mocks/argument_expectation_spec.rb +0 -23
  305. data/spec/spec/mocks/argument_matchers_spec.rb +0 -19
  306. data/spec/spec/mocks/at_least_spec.rb +0 -97
  307. data/spec/spec/mocks/at_most_spec.rb +0 -93
  308. data/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
  309. data/spec/spec/mocks/bug_report_10263_spec.rb +0 -27
  310. data/spec/spec/mocks/bug_report_1049_spec.rb +0 -30
  311. data/spec/spec/mocks/bug_report_11545_spec.rb +0 -32
  312. data/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
  313. data/spec/spec/mocks/bug_report_496_spec.rb +0 -17
  314. data/spec/spec/mocks/bug_report_600_spec.rb +0 -22
  315. data/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
  316. data/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
  317. data/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
  318. data/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
  319. data/spec/spec/mocks/bug_report_830_spec.rb +0 -21
  320. data/spec/spec/mocks/bug_report_957_spec.rb +0 -22
  321. data/spec/spec/mocks/double_spec.rb +0 -12
  322. data/spec/spec/mocks/failing_argument_matchers_spec.rb +0 -95
  323. data/spec/spec/mocks/hash_including_matcher_spec.rb +0 -90
  324. data/spec/spec/mocks/hash_not_including_matcher_spec.rb +0 -67
  325. data/spec/spec/mocks/mock_ordering_spec.rb +0 -94
  326. data/spec/spec/mocks/mock_space_spec.rb +0 -54
  327. data/spec/spec/mocks/mock_spec.rb +0 -601
  328. data/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
  329. data/spec/spec/mocks/nil_expectation_warning_spec.rb +0 -53
  330. data/spec/spec/mocks/null_object_mock_spec.rb +0 -54
  331. data/spec/spec/mocks/once_counts_spec.rb +0 -53
  332. data/spec/spec/mocks/options_hash_spec.rb +0 -35
  333. data/spec/spec/mocks/partial_mock_spec.rb +0 -164
  334. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
  335. data/spec/spec/mocks/passing_argument_matchers_spec.rb +0 -145
  336. data/spec/spec/mocks/precise_counts_spec.rb +0 -52
  337. data/spec/spec/mocks/record_messages_spec.rb +0 -26
  338. data/spec/spec/mocks/stub_chain_spec.rb +0 -42
  339. data/spec/spec/mocks/stub_implementation_spec.rb +0 -31
  340. data/spec/spec/mocks/stub_spec.rb +0 -203
  341. data/spec/spec/mocks/stubbed_message_expectations_spec.rb +0 -26
  342. data/spec/spec/mocks/twice_counts_spec.rb +0 -67
  343. data/spec/spec/mocks/unstub_spec.rb +0 -127
  344. data/spec/spec/package/bin_spec_spec.rb +0 -16
  345. data/spec/spec/rake/spectask_spec.rb +0 -150
  346. data/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
  347. data/spec/spec/runner/command_line_spec.rb +0 -162
  348. data/spec/spec/runner/configuration_spec.rb +0 -320
  349. data/spec/spec/runner/drb_command_line_spec.rb +0 -146
  350. data/spec/spec/runner/empty_file.txt +0 -0
  351. data/spec/spec/runner/example_group_runner_spec.rb +0 -26
  352. data/spec/spec/runner/examples.txt +0 -2
  353. data/spec/spec/runner/failed.txt +0 -3
  354. data/spec/spec/runner/formatter/base_formatter_spec.rb +0 -30
  355. data/spec/spec/runner/formatter/base_text_formatter_spec.rb +0 -113
  356. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
  357. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
  358. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -377
  359. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -377
  360. data/spec/spec/runner/formatter/html_formatted-1.8.7.html +0 -377
  361. data/spec/spec/runner/formatter/html_formatted-1.9.1.html +0 -377
  362. data/spec/spec/runner/formatter/html_formatted-1.9.2.html +0 -377
  363. data/spec/spec/runner/formatter/html_formatter_spec.rb +0 -118
  364. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -329
  365. data/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -70
  366. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -149
  367. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
  368. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -159
  369. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +0 -371
  370. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -371
  371. data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +0 -371
  372. data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +0 -371
  373. data/spec/spec/runner/formatter/text_mate_formatted-1.9.2.html +0 -371
  374. data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +0 -106
  375. data/spec/spec/runner/heckle_runner_spec.rb +0 -78
  376. data/spec/spec/runner/heckler_spec.rb +0 -20
  377. data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +0 -70
  378. data/spec/spec/runner/line_number_query_spec.rb +0 -129
  379. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -51
  380. data/spec/spec/runner/option_parser_spec.rb +0 -551
  381. data/spec/spec/runner/options_spec.rb +0 -554
  382. data/spec/spec/runner/output_one_time_fixture.rb +0 -7
  383. data/spec/spec/runner/output_one_time_fixture_runner.rb +0 -7
  384. data/spec/spec/runner/output_one_time_spec.rb +0 -15
  385. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -123
  386. data/spec/spec/runner/reporter_spec.rb +0 -244
  387. data/spec/spec/runner/resources/a_bar.rb +0 -0
  388. data/spec/spec/runner/resources/a_foo.rb +0 -0
  389. data/spec/spec/runner/resources/a_spec.rb +0 -1
  390. data/spec/spec/runner/resources/custom_example_group_runner.rb +0 -14
  391. data/spec/spec/runner/resources/utf8_encoded.rb +0 -8
  392. data/spec/spec/runner/spec.opts +0 -2
  393. data/spec/spec/runner/spec_drb.opts +0 -2
  394. data/spec/spec/runner/spec_spaced.opts +0 -2
  395. data/spec/spec/runner_spec.rb +0 -13
  396. data/spec/spec_helper.rb +0 -113
  397. data/spec/support/macros.rb +0 -29
  398. data/spec/support/spec_classes.rb +0 -133
@@ -1,180 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Spec
4
- module Example
5
- describe ExampleGroupFactory do
6
- describe "#get" do
7
- attr_reader :example_group
8
- before(:each) do
9
- @example_group_class = Class.new(ExampleGroupDouble)
10
- ExampleGroupFactory.register(:registered_type, @example_group_class)
11
- end
12
-
13
- after(:each) do
14
- ExampleGroupFactory.reset
15
- end
16
-
17
- it "should return the default ExampleGroup type for nil" do
18
- ExampleGroupFactory[nil].should == ExampleGroup
19
- end
20
-
21
- it "should return the default ExampleGroup for an unregistered non-nil value" do
22
- ExampleGroupFactory[:does_not_exist].should == ExampleGroup
23
- end
24
-
25
- it "should return custom type if registered" do
26
- ExampleGroupFactory[:registered_type].should == @example_group_class
27
- end
28
-
29
- it "should get the custom type after setting the default" do
30
- @alternate_example_group_class = Class.new(ExampleGroupDouble)
31
- ExampleGroupFactory.default(@alternate_example_group_class)
32
- ExampleGroupFactory[:registered_type].should == @example_group_class
33
- end
34
- end
35
-
36
- describe "#create_example_group" do
37
- attr_reader :parent_example_group
38
- before do
39
- @parent_example_group = Class.new(ExampleGroupDouble) do
40
- def initialize(*args, &block)
41
- ;
42
- end
43
- end
44
- end
45
-
46
- it "should create a uniquely named class" do
47
- example_group = Spec::Example::ExampleGroupFactory.create_example_group("example_group") {}
48
- example_group.name.should =~ /Spec::Example::ExampleGroup::Subclass_\d+/
49
- end
50
-
51
- it "should create a Spec::Example::Example subclass by default" do
52
- example_group = Spec::Example::ExampleGroupFactory.create_example_group("example_group") {}
53
- example_group.superclass.should == Spec::Example::ExampleGroup
54
- end
55
-
56
- it "should raise when no description is given" do
57
- lambda {
58
- Spec::Example::ExampleGroupFactory.create_example_group do; end
59
- }.should raise_error(ArgumentError)
60
- end
61
-
62
- it "should raise when no block is given" do
63
- lambda { Spec::Example::ExampleGroupFactory.create_example_group "foo" }.should raise_error(ArgumentError)
64
- end
65
-
66
- it "should run registered ExampleGroups" do
67
- example_group = Spec::Example::ExampleGroupFactory.create_example_group "The ExampleGroup" do end
68
- Spec::Runner.options.example_groups.should include(example_group)
69
- end
70
-
71
- it "should not run unregistered ExampleGroups" do
72
- example_group = Spec::Example::ExampleGroupFactory.create_example_group "The ExampleGroup" do Spec::Runner.options.remove_example_group self; end
73
- Spec::Runner.options.example_groups.should_not include(example_group)
74
- end
75
-
76
- describe "with :type => :default" do
77
- it "should create a Spec::Example::ExampleGroup" do
78
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
79
- "example_group", :type => :default
80
- ) {}
81
- example_group.superclass.should == Spec::Example::ExampleGroup
82
- end
83
- end
84
-
85
- describe "with :type => :something_other_than_default" do
86
- it "should create the specified type" do
87
- Spec::Example::ExampleGroupFactory.register(:something_other_than_default, parent_example_group)
88
- non_default_example_group = Spec::Example::ExampleGroupFactory.create_example_group(
89
- "example_group", :type => :something_other_than_default
90
- ) {}
91
- non_default_example_group.superclass.should == parent_example_group
92
- end
93
- end
94
-
95
- it "should create a type indicated by :location" do
96
- Spec::Example::ExampleGroupFactory.register(:something_other_than_default, parent_example_group)
97
- custom_example_group = Spec::Example::ExampleGroupFactory.create_example_group(
98
- "example_group", :location => "./spec/something_other_than_default/some_spec.rb"
99
- ) {}
100
- custom_example_group.superclass.should == parent_example_group
101
- end
102
-
103
- it "should create a type indicated by :location (with location generated by caller on windows)" do
104
- Spec::Example::ExampleGroupFactory.register(:something_other_than_default, parent_example_group)
105
- custom_example_group = Spec::Example::ExampleGroupFactory.create_example_group(
106
- "example_group",
107
- :location => "./spec\\something_other_than_default\\some_spec.rb"
108
- ) {}
109
- custom_example_group.superclass.should == parent_example_group
110
- end
111
-
112
- it "should create a type indicated by location for a path-like key" do
113
- Spec::Example::ExampleGroupFactory.register('path/to/custom/', parent_example_group)
114
- custom_example_group = Spec::Example::ExampleGroupFactory.create_example_group(
115
- "example_group", :location => "./spec/path/to/custom/some_spec.rb"
116
- ) {}
117
- custom_example_group.superclass.should == parent_example_group
118
- end
119
-
120
- it "should use the longest key that matches when creating a type indicated by location" do
121
- longer = Class.new parent_example_group
122
- Spec::Example::ExampleGroupFactory.register(:longer, longer)
123
- long = Class.new parent_example_group
124
- Spec::Example::ExampleGroupFactory.register(:long, long)
125
- custom_example_group = Spec::Example::ExampleGroupFactory.create_example_group(
126
- "example_group", :location => "./spec/longer/some_spec.rb"
127
- ) {}
128
- custom_example_group.superclass.should == longer
129
- end
130
-
131
- describe "with :shared => true" do
132
- def shared_example_group
133
- @shared_example_group ||= Spec::Example::ExampleGroupFactory.create_example_group(
134
- "name", :location => '/blah/spec/models/blah.rb', :type => :controller, :shared => true
135
- ) {}
136
- end
137
-
138
- it "should create and register a Spec::Example::SharedExampleGroup" do
139
- shared_example_group.should be_an_instance_of(Spec::Example::SharedExampleGroup)
140
- SharedExampleGroup.should include(shared_example_group)
141
- end
142
- end
143
-
144
- it "should favor the :type over the :location" do
145
- Spec::Example::ExampleGroupFactory.register(:something_other_than_default, parent_example_group)
146
- custom_example_group = Spec::Example::ExampleGroupFactory.create_example_group(
147
- "name", :location => '/blah/spec/models/blah.rb', :type => :something_other_than_default
148
- ) {}
149
- custom_example_group.superclass.should == parent_example_group
150
- end
151
-
152
- it "should register ExampleGroup by default" do
153
- example_group = Spec::Example::ExampleGroupFactory.create_example_group("The ExampleGroup") do
154
- end
155
- Spec::Runner.options.example_groups.should include(example_group)
156
- end
157
-
158
- it "should enable unregistering of ExampleGroups" do
159
- example_group = Spec::Example::ExampleGroupFactory.create_example_group("The ExampleGroup") do
160
- Spec::Runner.options.remove_example_group self
161
- end
162
- Spec::Runner.options.example_groups.should_not include(example_group)
163
- end
164
-
165
- after(:each) do
166
- Spec::Example::ExampleGroupFactory.reset
167
- end
168
- end
169
-
170
- describe "#create_shared_example_group" do
171
- it "registers a new shared example group" do
172
- shared_example_group = Spec::Example::ExampleGroupFactory.create_shared_example_group("something shared") {}
173
- shared_example_group.should be_an_instance_of(Spec::Example::SharedExampleGroup)
174
- SharedExampleGroup.should include(shared_example_group)
175
- end
176
- end
177
-
178
- end
179
- end
180
- end
@@ -1,778 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Spec
4
- module Example
5
- describe 'ExampleGroupMethods' do
6
- with_sandboxed_options do
7
- attr_reader :example_group, :result, :reporter
8
- before(:each) do
9
- # See http://rspec.lighthouseapp.com/projects/5645-rspec/tickets/525-arity-changed-on-partial-mocks#ticket-525-2
10
- method_with_three_args = lambda { |arg1, arg2, arg3| }
11
- options.formatters << mock("formatter", :null_object => true, :example_pending => method_with_three_args)
12
- options.backtrace_tweaker = mock("backtrace_tweaker", :null_object => true)
13
- @reporter = FakeReporter.new(@options)
14
- options.reporter = reporter
15
- @example_group = Class.new(ExampleGroupDouble) do
16
- describe("ExampleGroup")
17
- it "does nothing"
18
- end
19
- end
20
-
21
- after(:each) do
22
- ExampleGroupDouble.reset
23
- end
24
-
25
- ["describe","context"].each do |method|
26
- describe "##{method}" do
27
- describe "when creating an ExampleGroup" do
28
- before(:each) do
29
- @parent_example_group = Class.new(ExampleGroupDouble) do
30
- example "first example" do; end
31
- end
32
- @child_example_group = @parent_example_group.__send__ method, "Child" do
33
- example "second example" do; end
34
- end
35
- end
36
-
37
- it "should create a subclass of the ExampleGroup when passed a block" do
38
- @child_example_group.superclass.should == @parent_example_group
39
- options.example_groups.should include(@child_example_group)
40
- end
41
-
42
- it "should not inherit examples" do
43
- @child_example_group.should have(1).examples
44
- end
45
-
46
- it "records the spec path" do
47
- @child_example_group.location.should =~ /#{__FILE__}:#{__LINE__ - 15}/
48
- end
49
- end
50
-
51
- describe "when creating an example group with no description" do
52
- it "raises an ArgumentError" do
53
- lambda do
54
- Class.new(ExampleGroupDouble).describe
55
- end.should raise_error(Spec::Example::NoDescriptionError, /No description supplied for example group declared on #{__FILE__}:#{__LINE__ - 1}/)
56
- end
57
- end
58
-
59
- describe "when creating a SharedExampleGroup" do
60
- before(:each) do
61
- @shared_example_group = @example_group.__send__ method, "A Shared ExampleGroup", :shared => true do; end
62
- end
63
-
64
- after(:each) do
65
- SharedExampleGroup.instance_eval{@shared_example_groups}.delete @shared_example_group
66
- end
67
-
68
- it "should create a SharedExampleGroup" do
69
- @shared_example_group.should_not be_nil
70
- SharedExampleGroup.find("A Shared ExampleGroup").should == @shared_example_group
71
- end
72
- end
73
-
74
- end
75
- end
76
-
77
- [:example, :specify, :it].each do |method|
78
- describe "##{method.to_s}" do
79
- it "should add an example" do
80
- lambda {
81
- @example_group.__send__(method, "")
82
- }.should change { @example_group.examples.length }.by(1)
83
- end
84
-
85
- describe "with no location supplied" do
86
- describe "creates an ExampleProxy" do
87
- before(:all) do
88
- @example_group = Class.new(ExampleGroupDouble).describe("bar")
89
- @example_proxy = @example_group.__send__(method, "foo", {:this => :that}) {}
90
- @location = "#{__FILE__}:#{__LINE__ - 1}"
91
- end
92
-
93
- specify "with a description" do
94
- @example_proxy.description.should == "foo"
95
- end
96
-
97
- specify "with options" do
98
- @example_proxy.options.should == {:this => :that}
99
- end
100
-
101
- specify "with a default backtrace (DEPRECATED)" do
102
- Spec.stub!(:deprecate)
103
- @example_proxy.backtrace.should =~ /#{@location}/
104
- end
105
-
106
- specify "with a default location" do
107
- @example_proxy.location.should =~ /#{@location}/
108
- end
109
- end
110
- end
111
-
112
- describe "with a location supplied" do
113
- describe "creates an ExampleProxy" do
114
- before(:all) do
115
- @example_group = Class.new(ExampleGroupDouble).describe("bar")
116
- @example_proxy = @example_group.__send__(method, "foo", {:this => :that}, "the location") {}
117
- end
118
-
119
- specify "with the supplied location as #backtrace (DEPRECATED)" do
120
- Spec.stub!(:deprecate)
121
- @example_proxy.backtrace.should == "the location"
122
- end
123
-
124
- specify "with the supplied location as #location" do
125
- @example_proxy.location.should == "the location"
126
- end
127
- end
128
- end
129
-
130
-
131
- end
132
- end
133
-
134
- [:xexample, :xit, :xspecify].each do |method|
135
- describe "##{method.to_s}" do
136
- before(:each) do
137
- Kernel.stub!(:warn)
138
- end
139
-
140
- it "should NOT create an example" do
141
- lambda {
142
- @example_group.__send__(method,"")
143
- }.should_not change(@example_group.examples, :length)
144
- end
145
-
146
- it "should warn that the example is disabled" do
147
- Kernel.should_receive(:warn).with("Example disabled: foo")
148
- @example_group.__send__(method,"foo")
149
- end
150
- end
151
- end
152
-
153
- describe "#examples" do
154
- it "should have Examples" do
155
- example_group = Class.new(ExampleGroupDouble) do
156
- it "should exist" do; end
157
- end
158
- example_group.examples.length.should == 1
159
- example_group.examples.first.description.should == "should exist"
160
- end
161
-
162
- it "should not include methods that begin with test (only when TU interop is loaded)" do
163
- example_group = Class.new(ExampleGroupDouble) do
164
- def test_any_args(*args)
165
- true.should be_true
166
- end
167
- def test_something
168
- 1.should == 1
169
- end
170
- def test
171
- raise "This is not a real test"
172
- end
173
- def testify
174
- raise "This is not a real test"
175
- end
176
- def should_something
177
- # forces the run
178
- end
179
- end
180
-
181
- example_group.examples.length.should == 1
182
- example_group.run(options).should be_true
183
- end
184
-
185
- it "should include methods that begin with should and has an arity of 0 in suite" do
186
- example_group = Class.new(ExampleGroupDouble) do
187
- def shouldCamelCase
188
- true.should be_true
189
- end
190
- def should_any_args(*args)
191
- true.should be_true
192
- end
193
- def should_something
194
- 1.should == 1
195
- end
196
- def should_not_something
197
- 1.should_not == 2
198
- end
199
- def should
200
- raise "This is not a real example"
201
- end
202
- def should_not
203
- raise "This is not a real example"
204
- end
205
- end
206
- example_group.should have(4).examples
207
- descriptions = example_group.examples.collect {|e| e.description}
208
- descriptions.should include(
209
- "shouldCamelCase",
210
- "should_any_args",
211
- "should_something",
212
- "should_not_something")
213
- descriptions.should_not include(
214
- "should",
215
- "should_not"
216
- )
217
- end
218
-
219
- it "should not include methods that begin with test_ and has an arity > 0 in suite" do
220
- example_group = Class.new(ExampleGroupDouble) do
221
- def test_invalid(foo)
222
- 1.should == 1
223
- end
224
- def testInvalidCamelCase(foo)
225
- 1.should == 1
226
- end
227
- end
228
- example_group.should have(:no).examples
229
- end
230
-
231
- it "should not include methods that begin with should_ and has an arity > 0 in suite" do
232
- example_group = Class.new(ExampleGroupDouble) do
233
- def should_invalid(foo)
234
- 1.should == 2
235
- end
236
- def shouldInvalidCamelCase(foo)
237
- 1.should == 3
238
- end
239
- def should_not_invalid(foo)
240
- 1.should == 4
241
- end
242
- def should_valid
243
- 1.should == 1
244
- end
245
- end
246
- example_group.should have(1).examples
247
- example_group.run(options).should be_true
248
- end
249
-
250
- it "should run should_methods" do
251
- example_group = Class.new(ExampleGroupDouble) do
252
- def should_valid
253
- 1.should == 2
254
- end
255
- end
256
- example_group.should have(1).examples
257
- example_group.run(options).should be_false
258
- end
259
- end
260
-
261
- describe "#set_description" do
262
- attr_reader :example_group
263
- before do
264
- class << example_group
265
- public :set_description
266
- end
267
- end
268
-
269
- describe "given a String" do
270
- before(:each) do
271
- example_group.set_description("abc")
272
- end
273
-
274
- specify ".description should return the String passed into .set_description" do
275
- example_group.description.should == "abc"
276
- end
277
-
278
- specify ".described_type should provide nil as its type" do
279
- example_group.described_type.should be_nil
280
- end
281
- end
282
-
283
- describe "given a Class" do
284
- before(:each) do
285
- example_group.set_description(ExampleGroup)
286
- end
287
-
288
- specify ".description should return a String representation of that type (fully qualified) as its name" do
289
- example_group.description.should == "Spec::Example::ExampleGroup"
290
- end
291
-
292
- specify ".described_type should return the passed in type" do
293
- example_group.described_type.should == Spec::Example::ExampleGroup
294
- end
295
- end
296
-
297
- describe "given a String and a Class" do
298
- before(:each) do
299
- example_group.set_description("behaving", ExampleGroup)
300
- end
301
-
302
- specify ".description should return String then space then Type" do
303
- example_group.description.should == "behaving Spec::Example::ExampleGroup"
304
- end
305
-
306
- specify ".described_type should return the passed in type" do
307
- example_group.described_type.should == Spec::Example::ExampleGroup
308
- end
309
- end
310
-
311
- describe "given a Class and a String (starting with an alpha char)" do
312
- before(:each) do
313
- example_group.set_description(ExampleGroup, "behaving")
314
- end
315
-
316
- specify ".description should return the Type then space then String" do
317
- example_group.description.should == "Spec::Example::ExampleGroup behaving"
318
- end
319
- end
320
-
321
- describe "given a Class and a String (starting with a '.')" do
322
- before(:each) do
323
- example_group.set_description(ExampleGroup, ".behaving")
324
- end
325
-
326
- specify ".description should return the Type then String" do
327
- example_group.description.should == "Spec::Example::ExampleGroup.behaving"
328
- end
329
- end
330
-
331
- describe "#set_description(Class, String starting with #)" do
332
- before(:each) do
333
- example_group.set_description(ExampleGroup, "#behaving")
334
- end
335
-
336
- specify "should return the Class then String" do
337
- example_group.description.should == "Spec::Example::ExampleGroup#behaving"
338
- end
339
- end
340
-
341
- describe "#set_description(Class, String containing .)" do
342
- before(:each) do
343
- example_group.set_description(ExampleGroup, "calling a.b")
344
- end
345
-
346
- specify ".description should return the Type then space then String" do
347
- example_group.description.should == "Spec::Example::ExampleGroup calling a.b"
348
- end
349
- end
350
-
351
- describe "#set_description(Class, String containing #)" do
352
- before(:each) do
353
- example_group.set_description(ExampleGroup, "is #1")
354
- end
355
-
356
- specify ".description should return the Type then space then String" do
357
- example_group.description.should == "Spec::Example::ExampleGroup is #1"
358
- end
359
- end
360
-
361
- describe "#set_description(String, Type, String)" do
362
- before(:each) do
363
- example_group.set_description("A", Hash, "with one entry")
364
- end
365
-
366
- specify ".description should return the first String then space then Type then second String" do
367
- example_group.description.should == "A Hash with one entry"
368
- end
369
- end
370
-
371
- describe "#set_description(Hash representing options)" do
372
- before(:each) do
373
- example_group.set_description(:a => "b", :location => "blah")
374
- end
375
-
376
- it ".location should expand the passed in :location option passed into the constructor" do
377
- example_group.location.should == File.expand_path("blah")
378
- end
379
-
380
- it ".options should return all the options passed in" do
381
- example_group.options.should == {:a => "b", :location => "blah"}
382
- end
383
-
384
- end
385
- end
386
-
387
- describe "#description" do
388
- it "should return the same description instance for each call" do
389
- example_group.description.should eql(example_group.description)
390
- end
391
-
392
- it "should not add a space when description begins with #" do
393
- child_example_group = Class.new(example_group) do
394
- describe("#foobar", "Does something")
395
- end
396
- child_example_group.description.should == "ExampleGroup#foobar Does something"
397
- end
398
-
399
- it "should not add a space when description begins with ." do
400
- child_example_group = Class.new(example_group) do
401
- describe(".foobar", "Does something")
402
- end
403
- child_example_group.description.should == "ExampleGroup.foobar Does something"
404
- end
405
-
406
- it "should return the class name if nil" do
407
- example_group.set_description(nil)
408
- example_group.description.should =~ /Class:/
409
- end
410
-
411
- it "should return the class name if nil" do
412
- example_group.set_description("")
413
- example_group.description.should =~ /Class:/
414
- end
415
-
416
- it "is cached" do
417
- example_group.set_description("describe me")
418
- example_group.description.should be(example_group.description)
419
- end
420
- end
421
-
422
- describe "#description_parts" do
423
- it "should return an Array of the current class description args" do
424
- example_group.description_parts.should == [example_group.description]
425
- end
426
-
427
- it "should return an Array of the description args from each class in the hierarchy" do
428
- parent_example_group = Class.new(ExampleGroupDouble) do
429
- describe("Parent")
430
- end
431
-
432
- child_example_group = Class.new(parent_example_group)
433
- child_example_group.describe("Child", ExampleGroup)
434
- child_example_group.description.should_not be_empty
435
-
436
- grand_child_example_group = Class.new(child_example_group)
437
- grand_child_example_group.describe("GrandChild", ExampleGroup)
438
- grand_child_example_group.description.should_not be_empty
439
-
440
- grand_child_example_group.description_parts.should == [
441
- "Parent",
442
- "Child",
443
- Spec::Example::ExampleGroup,
444
- "GrandChild",
445
- Spec::Example::ExampleGroup
446
- ]
447
- end
448
-
449
- it "caches the description parts" do
450
- example_group.description_parts.should equal(example_group.description_parts)
451
- end
452
- end
453
-
454
- describe "#described_type" do
455
- it "should return passed in type" do
456
- child_example_group = Class.new(example_group) do
457
- describe Object
458
- end
459
- child_example_group.described_type.should == Object
460
- end
461
-
462
- it "should return #described_type of superclass when no passed in type" do
463
- parent_example_group = Class.new(ExampleGroupDouble) do
464
- describe Object, "#foobar"
465
- end
466
- child_example_group = Class.new(parent_example_group) do
467
- describe "not a type"
468
- end
469
- child_example_group.described_type.should == Object
470
- end
471
-
472
- it "is cached per example group" do
473
- klass = Class.new
474
- group = Class.new(ExampleGroupDouble) do
475
- describe(klass)
476
- end
477
- group.should_receive(:description_parts).once.and_return([klass])
478
- group.described_type
479
- group.described_type
480
- end
481
- end
482
-
483
- describe "#include" do
484
- it "should have accessible class methods from included module" do
485
- mod_method_called = false
486
- mod = Module.new do
487
- class_methods = Module.new do
488
- define_method :mod_method do
489
- mod_method_called = true
490
- end
491
- end
492
-
493
- self.class.class_eval do
494
- define_method(:included) do |receiver|
495
- receiver.extend class_methods
496
- end
497
- end
498
- end
499
-
500
- @example_group.__send__ :include, mod
501
-
502
- @example_group.mod_method
503
- mod_method_called.should be_true
504
- end
505
- end
506
-
507
- describe "#number_of_examples" do
508
- it "should count number of examples" do
509
- proc do
510
- @example_group.it("one") {}
511
- @example_group.it("two") {}
512
- @example_group.it("three") {}
513
- @example_group.it("four") {}
514
- end.should change {@example_group.number_of_examples}.by(4)
515
- end
516
- end
517
-
518
- describe "#class_eval" do
519
- it "should allow constants to be defined" do
520
- example_group = Class.new(ExampleGroupDouble) do
521
- FOO = 1
522
- it "should reference FOO" do
523
- FOO.should == 1
524
- end
525
- end
526
- success = example_group.run(options)
527
- success.should be_true
528
- Object.const_defined?(:FOO).should == false
529
- end
530
- end
531
-
532
- describe '#register' do
533
- after(:each) do
534
- Spec::Runner.options.remove_example_group example_group
535
- end
536
- it "should add ExampleGroup to set of ExampleGroups to be run" do
537
- Spec::Runner.options.add_example_group example_group
538
- options.example_groups.should include(example_group)
539
- end
540
- end
541
-
542
- describe '#remove_example_group' do
543
- before(:each) do
544
- Spec::Runner.options.add_example_group example_group
545
- end
546
- it "should remove ExampleGroup from set of ExampleGroups to be run" do
547
- Spec::Runner.options.remove_example_group example_group
548
- options.example_groups.should_not include(example_group)
549
- end
550
- end
551
-
552
- describe "#run" do
553
- describe "given an example group with at least one example" do
554
- it "should call add_example_group" do
555
- example_group = Class.new(ExampleGroupDouble) do
556
- example("anything") {}
557
- end
558
- reporter.should_receive(:add_example_group)
559
- example_group.run(options)
560
- end
561
- end
562
-
563
- describe "given an example group with no examples" do
564
- it "should NOT call add_example_group" do
565
- example_group = Class.new(ExampleGroupDouble) do end
566
- reporter.should_not_receive(:add_example_group)
567
- example_group.run(options)
568
- end
569
- end
570
- end
571
-
572
- describe "#matcher_class=" do
573
- it "should call new and matches? on the class used for matching examples" do
574
- example_group = Class.new(ExampleGroupDouble) do
575
- it "should do something" do end
576
- def self.specified_examples
577
- ["something"]
578
- end
579
- def self.to_s
580
- "TestMatcher"
581
- end
582
- end
583
-
584
- matcher = mock("matcher")
585
- matcher.should_receive(:matches?).with(["something"]).any_number_of_times
586
-
587
- matcher_class = Class.new
588
- matcher_class.should_receive(:new).with("TestMatcher", "should do something").and_return(matcher)
589
-
590
- begin
591
- ExampleGroupMethods.matcher_class = matcher_class
592
-
593
- example_group.run(options)
594
- ensure
595
- ExampleGroupMethods.matcher_class = ExampleMatcher
596
- end
597
- end
598
- end
599
-
600
- describe "#options" do
601
- it "should expose the options hash" do
602
- group = describe("group", :this => 'hash') {}
603
- group.options[:this].should == 'hash'
604
- end
605
- end
606
-
607
- describe "#before" do
608
- it "stores before(:each) blocks" do
609
- example_group = Class.new(ExampleGroupDouble) {}
610
- block = lambda {}
611
- example_group.before(:each, &block)
612
- example_group.before_each_parts.should include(block)
613
- end
614
-
615
- it "stores before(:all) blocks" do
616
- example_group = Class.new(ExampleGroupDouble) {}
617
- block = lambda {}
618
- example_group.before(:all, &block)
619
- example_group.before_all_parts.should include(block)
620
- end
621
-
622
- it "stores before(:suite) blocks" do
623
- example_group = Class.new(ExampleGroupDouble) {}
624
- parts = []
625
- ExampleGroupMethods.stub!(:before_suite_parts).and_return(parts)
626
- block = lambda {}
627
- example_group.before(:suite, &block)
628
- example_group.before_suite_parts.should include(block)
629
- end
630
- end
631
-
632
-
633
- describe "#after" do
634
- it "stores after(:each) blocks" do
635
- example_group = Class.new(ExampleGroupDouble) {}
636
- block = lambda {}
637
- example_group.after(:each, &block)
638
- example_group.after_each_parts.should include(block)
639
- end
640
-
641
- it "stores after(:all) blocks" do
642
- example_group = Class.new(ExampleGroupDouble) {}
643
- block = lambda {}
644
- example_group.after(:all, &block)
645
- example_group.after_all_parts.should include(block)
646
- end
647
-
648
- it "stores after(:suite) blocks" do
649
- example_group = Class.new(ExampleGroupDouble) {}
650
- parts = []
651
- ExampleGroupMethods.stub!(:after_suite_parts).and_return(parts)
652
- block = lambda {}
653
- example_group.after(:suite, &block)
654
- example_group.after_suite_parts.should include(block)
655
- end
656
- end
657
-
658
- describe "#run_before_all" do
659
- it "does not create an instance if before_all_parts are empty" do
660
- example_group = Class.new(ExampleGroupDouble) { example("one example") {} }
661
- example_group.should_not_receive(:new)
662
- example_group.__send__ :run_before_all, nil
663
- end
664
- end
665
-
666
- describe "#run_after_all" do
667
- it "does not create an instance if after_all_parts are empty" do
668
- example_group = Class.new(ExampleGroupDouble) { example("one example") {} }
669
- example_group.should_not_receive(:new)
670
- example_group.__send__ :run_after_all, true, {}, nil
671
- end
672
- end
673
-
674
- describe "#examples_to_run" do
675
- it "runs only the example identified by a line number" do
676
- example_group = Class.new(ExampleGroupDouble).describe("this") do
677
- it { 3.should == 3 }
678
- it "has another example which raises" do
679
- raise "this shouldn't have run"
680
- end
681
- end
682
- options.examples << :ignore
683
- options.line_number = __LINE__ - 6
684
- options.files << __FILE__
685
- example_group.run(options).should be_true
686
- end
687
-
688
- it "runs the example identified by a line number even if it's not the example line number" do
689
- example_group = Class.new(ExampleGroupDouble).describe("this") do
690
-
691
- it { raise "foo" }
692
-
693
- end
694
- options.examples << :ignore
695
- options.line_number = __LINE__ - 3
696
- options.files << __FILE__
697
- example_group.run(options).should be_false
698
- end
699
-
700
- it "runs all the examples in the group " do
701
- first_example_ran = false
702
- second_example_ran = false
703
- example_group = Class.new(ExampleGroupDouble).describe("this") do
704
-
705
- it { first_example_ran = true }
706
- it { second_example_ran = true }
707
-
708
- end
709
- options.line_number = __LINE__ - 6
710
- options.files << __FILE__
711
- options.examples << :ignore
712
- example_group.run(options)
713
- first_example_ran.should be_true
714
- second_example_ran.should be_true
715
- end
716
-
717
- it "doesn't run any examples in another group" do
718
- example_ran = false
719
- example_group_1 = Class.new(ExampleGroupDouble).describe("this") do
720
- it "ignore" do
721
- example_ran = true
722
- end
723
- end
724
- example_group_2 = Class.new(ExampleGroupDouble).describe("that") do
725
- end
726
- options.examples << :ignore
727
- options.line_number = __LINE__ - 3
728
- options.files << __FILE__
729
- example_group_1.run(options)
730
- example_group_2.run(options)
731
- example_ran.should be_false
732
- end
733
- end
734
-
735
- describe "#let" do
736
- let(:counter) do
737
- Class.new do
738
- def initialize
739
- @count = 0
740
- end
741
- def count
742
- @count += 1
743
- end
744
- end.new
745
- end
746
-
747
- it "generates an instance method" do
748
- counter.count.should == 1
749
- end
750
-
751
- it "caches the value" do
752
- counter.count.should == 1
753
- counter.count.should == 2
754
- end
755
- end
756
-
757
- describe "#let!" do
758
- let!(:creator) do
759
- class Creator
760
- @count = 0
761
- def self.count
762
- @count += 1
763
- end
764
- end
765
- end
766
-
767
- it "evaluates the value non-lazily" do
768
- lambda { Creator.count }.should_not raise_error
769
- end
770
-
771
- it "does not interfere between tests" do
772
- Creator.count.should == 1
773
- end
774
- end
775
- end
776
- end
777
- end
778
- end