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,25 +1,26 @@
1
-
2
- class MultiThreadedBehaviourRunner < Spec::Runner::BehaviourRunner
3
- def initialize(options)
4
- super
1
+ class MultiThreadedExampleGroupRunner < Spec::Runner::ExampleGroupRunner
2
+ def initialize(options, arg)
3
+ super(options)
5
4
  # configure these
6
5
  @thread_count = 4
7
6
  @thread_wait = 0
8
7
  end
9
8
 
10
- def run_behaviours(behaviours)
9
+ def run
11
10
  @threads = []
12
11
  q = Queue.new
13
- behaviours.each { |b| q << b}
12
+ example_groups.each { |b| q << b}
13
+ success = true
14
14
  @thread_count.times do
15
15
  @threads << Thread.new(q) do |queue|
16
16
  while not queue.empty?
17
- behaviour = queue.pop
18
- behaviour.run(@options.reporter, @options.dry_run, @options.reverse)
17
+ example_group = queue.pop
18
+ success &= example_group.suite.run(nil)
19
19
  end
20
20
  end
21
21
  sleep @thread_wait
22
22
  end
23
23
  @threads.each {|t| t.join}
24
+ success
24
25
  end
25
- end
26
+ end
@@ -0,0 +1,35 @@
1
+ require 'examples/passing/stack'
2
+
3
+ class StackExamples < Spec::ExampleGroup
4
+ describe(Stack)
5
+ before(:each) do
6
+ @stack = Stack.new
7
+ end
8
+ end
9
+
10
+ class EmptyStackExamples < StackExamples
11
+ describe("when empty")
12
+ it "should be empty" do
13
+ @stack.should be_empty
14
+ end
15
+ end
16
+
17
+ class AlmostFullStackExamples < StackExamples
18
+ describe("when almost full")
19
+ before(:each) do
20
+ (1..9).each {|n| @stack.push n}
21
+ end
22
+ it "should be full" do
23
+ @stack.should_not be_full
24
+ end
25
+ end
26
+
27
+ class FullStackExamples < StackExamples
28
+ describe("when full")
29
+ before(:each) do
30
+ (1..10).each {|n| @stack.push n}
31
+ end
32
+ it "should be full" do
33
+ @stack.should be_full
34
+ end
35
+ end
@@ -0,0 +1,29 @@
1
+ # This demonstrates the use of the options hash to support custom reporting.
2
+ # To see the result, run this command from the project root:
3
+ #
4
+ # bin/spec --require examples/passing/options_formatter.rb examples/passing/options_example.rb \
5
+ # --format OptionsFormatter
6
+
7
+ describe "this group will be reported", :report => true do
8
+ it "this example will be reported", :report => true do
9
+ # no-op
10
+ end
11
+
12
+ it "this example will not be reported", :report => false do
13
+ # no-op
14
+ end
15
+
16
+ it "this example will also not be reported", :foo => 'bar' do
17
+ # no-op
18
+ end
19
+
20
+ it "this example will also also not be reported" do
21
+ # no-op
22
+ end
23
+ end
24
+
25
+ describe "this group will not be reported", :report => false do
26
+ it "though this example will", :report => true do
27
+ # no-op
28
+ end
29
+ end
@@ -0,0 +1,20 @@
1
+ # This is an example of how you can use a custom formatter to do custom
2
+ # reporting. This formatter will only report example groups and examples that
3
+ # have :report => true (or anything truthy) in the declaration. See
4
+ # options_example.rb in this directory.
5
+
6
+ require 'spec/runner/formatter/base_text_formatter'
7
+
8
+ class OptionsFormatter < Spec::Runner::Formatter::BaseTextFormatter
9
+ def example_started(proxy)
10
+ if proxy.options[:report]
11
+ puts proxy.description
12
+ end
13
+ end
14
+
15
+ def example_group_started(proxy)
16
+ if proxy.options[:report]
17
+ puts proxy.description
18
+ end
19
+ end
20
+ end
@@ -1,5 +1,3 @@
1
- require File.dirname(__FILE__) + '/spec_helper'
2
-
3
1
  class MockableClass
4
2
  def self.find id
5
3
  return :original_return
@@ -25,4 +23,5 @@ describe "A partial mock" do
25
23
  MockableClass.msg_2
26
24
  MockableClass.msg_3
27
25
  end
28
- end
26
+
27
+ end
@@ -0,0 +1,18 @@
1
+ describe "pending example (using pending method)" do
2
+ it %Q|should be reported as "PENDING: for some reason"| do
3
+ pending("for some reason")
4
+ end
5
+ end
6
+
7
+ describe "pending example (with no block)" do
8
+ it %Q|should be reported as "PENDING: Not Yet Implemented"|
9
+ end
10
+
11
+ describe "pending example (with block for pending)" do
12
+ it %Q|should have a failing block, passed to pending, reported as "PENDING: for some reason"| do
13
+ pending("for some reason") do
14
+ raise "some reason"
15
+ end
16
+ end
17
+ end
18
+
@@ -1,5 +1,3 @@
1
- require File.dirname(__FILE__) + '/spec_helper'
2
-
3
1
  class BddFramework
4
2
  def intuitive?
5
3
  true
@@ -24,4 +22,4 @@ describe "BDD framework" do
24
22
  @bdd_framework.should be_intuitive
25
23
  end
26
24
 
27
- end
25
+ end
@@ -1,6 +1,4 @@
1
- require File.dirname(__FILE__) + '/spec_helper'
2
-
3
- module SharedBehaviourExample
1
+ module SharedExampleGroupExample
4
2
  class OneThing
5
3
  def what_things_do
6
4
  "stuff"
@@ -13,7 +11,15 @@ module SharedBehaviourExample
13
11
  end
14
12
  end
15
13
 
16
- describe "All Things", :shared => true do
14
+ class YetAnotherThing
15
+ def what_things_do
16
+ "stuff"
17
+ end
18
+ end
19
+
20
+ # A SharedExampleGroup is an example group that doesn't get run.
21
+ # You can create one like this:
22
+ share_examples_for "most things" do
17
23
  def helper_method
18
24
  "helper method"
19
25
  end
@@ -24,16 +30,14 @@ module SharedBehaviourExample
24
30
  end
25
31
 
26
32
  describe OneThing do
27
- it_should_behave_like "All Things"
33
+ # Now you can include the shared example group like this, which
34
+ # feels more like what you might say ...
35
+ it_should_behave_like "most things"
36
+
28
37
  before(:each) { @thing = OneThing.new }
29
38
 
30
- it "should have access to helper methods defined in the shared behaviour" do
39
+ it "should have access to helper methods defined in the shared example group" do
31
40
  helper_method.should == "helper method"
32
41
  end
33
42
  end
34
-
35
- describe AnotherThing do
36
- it_should_behave_like "All Things"
37
- before(:each) { @thing = AnotherThing.new }
38
- end
39
43
  end
@@ -0,0 +1,36 @@
1
+ shared_examples_for "non-empty Stack" do
2
+
3
+ it { @stack.should_not be_empty }
4
+
5
+ it "should return the top item when sent #peek" do
6
+ @stack.peek.should == @last_item_added
7
+ end
8
+
9
+ it "should NOT remove the top item when sent #peek" do
10
+ @stack.peek.should == @last_item_added
11
+ @stack.peek.should == @last_item_added
12
+ end
13
+
14
+ it "should return the top item when sent #pop" do
15
+ @stack.pop.should == @last_item_added
16
+ end
17
+
18
+ it "should remove the top item when sent #pop" do
19
+ @stack.pop.should == @last_item_added
20
+ unless @stack.empty?
21
+ @stack.pop.should_not == @last_item_added
22
+ end
23
+ end
24
+
25
+ end
26
+
27
+ shared_examples_for "non-full Stack" do
28
+
29
+ it { @stack.should_not be_full }
30
+
31
+ it "should add to the top when sent #push" do
32
+ @stack.push "newly added top item"
33
+ @stack.peek.should == "newly added top item"
34
+ end
35
+
36
+ end
@@ -0,0 +1,29 @@
1
+ describe "arrays" do
2
+ Spec::Matchers.define :contain_same_elements_as do |expected|
3
+ match do |actual|
4
+ if actual.size == expected.size
5
+ a, e = actual.dup, expected.dup
6
+ until e.empty? do
7
+ if i = a.index(e.pop) then a.delete_at(i) end
8
+ end
9
+ a.empty?
10
+ else
11
+ false
12
+ end
13
+ end
14
+ end
15
+
16
+ describe "can be matched by their contents disregarding order" do
17
+ subject { [1,2,2,3] }
18
+ it { should contain_same_elements_as([1,2,2,3]) }
19
+ it { should contain_same_elements_as([2,3,2,1]) }
20
+ it { should_not contain_same_elements_as([3,3,2,1]) }
21
+ end
22
+
23
+ describe "fail the match with different contents" do
24
+ subject { [1,2,3] }
25
+ it { should_not contain_same_elements_as([2,3,4])}
26
+ it { should_not contain_same_elements_as([1,2,2,3])}
27
+ it { should_not contain_same_elements_as([1,2])}
28
+ end
29
+ end
@@ -33,4 +33,4 @@ class Stack
33
33
  @items.length == 10
34
34
  end
35
35
 
36
- end
36
+ end
@@ -1,48 +1,14 @@
1
- require File.dirname(__FILE__) + '/spec_helper'
2
- require File.dirname(__FILE__) + "/stack"
3
-
4
- describe "non-empty Stack", :shared => true do
5
- # NOTE that this one auto-generates the description "should not be empty"
6
- it { @stack.should_not be_empty }
7
-
8
- it "should return the top item when sent #peek" do
9
- @stack.peek.should == @last_item_added
10
- end
11
-
12
- it "should NOT remove the top item when sent #peek" do
13
- @stack.peek.should == @last_item_added
14
- @stack.peek.should == @last_item_added
15
- end
16
-
17
- it "should return the top item when sent #pop" do
18
- @stack.pop.should == @last_item_added
19
- end
20
-
21
- it "should remove the top item when sent #pop" do
22
- @stack.pop.should == @last_item_added
23
- unless @stack.empty?
24
- @stack.pop.should_not == @last_item_added
25
- end
26
- end
27
- end
28
-
29
- describe "non-full Stack", :shared => true do
30
- # NOTE that this one auto-generates the description "should not be full"
31
- it { @stack.should_not be_full }
32
-
33
- it "should add to the top when sent #push" do
34
- @stack.push "newly added top item"
35
- @stack.peek.should == "newly added top item"
36
- end
37
- end
1
+ require 'examples/passing/stack'
2
+ require 'examples/passing/shared_stack_examples'
38
3
 
39
4
  describe Stack, " (empty)" do
40
5
  before(:each) do
41
6
  @stack = Stack.new
42
7
  end
43
8
 
44
- # NOTE that this one auto-generates the description "should be empty"
45
- it { @stack.should be_empty }
9
+ # This uses @stack (because the described class is Stack) auto-generates the
10
+ # description "should be empty"
11
+ it { should be_empty }
46
12
 
47
13
  it_should_behave_like "non-full Stack"
48
14
 
@@ -94,4 +60,4 @@ describe Stack, " (full)" do
94
60
  lambda { @stack.push Object.new }.should raise_error(StackOverflowError)
95
61
  end
96
62
 
97
- end
63
+ end
@@ -0,0 +1,66 @@
1
+ require 'examples/passing/stack'
2
+ require 'examples/passing/shared_stack_examples'
3
+
4
+ describe Stack do
5
+
6
+ before(:each) do
7
+ @stack = Stack.new
8
+ end
9
+
10
+ describe "(empty)" do
11
+
12
+ it { @stack.should be_empty }
13
+
14
+ it_should_behave_like "non-full Stack"
15
+
16
+ it "should complain when sent #peek" do
17
+ lambda { @stack.peek }.should raise_error(StackUnderflowError)
18
+ end
19
+
20
+ it "should complain when sent #pop" do
21
+ lambda { @stack.pop }.should raise_error(StackUnderflowError)
22
+ end
23
+
24
+ end
25
+
26
+ describe "(with one item)" do
27
+
28
+ before(:each) do
29
+ @stack.push 3
30
+ @last_item_added = 3
31
+ end
32
+
33
+ it_should_behave_like "non-empty Stack"
34
+ it_should_behave_like "non-full Stack"
35
+
36
+ end
37
+
38
+ describe "(with one item less than capacity)" do
39
+
40
+ before(:each) do
41
+ (1..9).each { |i| @stack.push i }
42
+ @last_item_added = 9
43
+ end
44
+
45
+ it_should_behave_like "non-empty Stack"
46
+ it_should_behave_like "non-full Stack"
47
+ end
48
+
49
+ describe "(full)" do
50
+
51
+ before(:each) do
52
+ (1..10).each { |i| @stack.push i }
53
+ @last_item_added = 10
54
+ end
55
+
56
+ it { @stack.should be_full }
57
+
58
+ it_should_behave_like "non-empty Stack"
59
+
60
+ it "should complain on #push" do
61
+ lambda { @stack.push Object.new }.should raise_error(StackOverflowError)
62
+ end
63
+
64
+ end
65
+
66
+ end
@@ -1,5 +1,3 @@
1
- require File.dirname(__FILE__) + '/spec_helper'
2
-
3
1
  describe "A consumer of a stub" do
4
2
  it "should be able to stub methods on any Object" do
5
3
  obj = Object.new
@@ -66,4 +64,4 @@ describe "A mock" do
66
64
  end
67
65
  end
68
66
 
69
-
67
+
@@ -0,0 +1,31 @@
1
+ class MessageAppender
2
+
3
+ def initialize(appendage)
4
+ @appendage = appendage
5
+ end
6
+
7
+ def append_to(message)
8
+ if_told_to_yield do
9
+ message << @appendage
10
+ end
11
+ end
12
+
13
+ end
14
+
15
+ describe "a message expectation yielding to a block" do
16
+ it "should yield if told to" do
17
+ appender = MessageAppender.new("appended to")
18
+ appender.should_receive(:if_told_to_yield).and_yield
19
+ message = ""
20
+ appender.append_to(message)
21
+ message.should == "appended to"
22
+ end
23
+
24
+ it "should not yield if not told to" do
25
+ appender = MessageAppender.new("appended to")
26
+ appender.should_receive(:if_told_to_yield)
27
+ message = ""
28
+ appender.append_to(message)
29
+ message.should == ""
30
+ end
31
+ end
@@ -0,0 +1,85 @@
1
+ # courtesy of Matthias Hennemeyer
2
+ #
3
+ # The following should pass against ruby 1.8 and 1.9. It currently only passes
4
+ # 1.8 (as of 1/2/2009)
5
+ #
6
+ # Once cucumber supports ruby 1.9, this should be moved to cucumber scenarios instead.
7
+ module Foo
8
+ module Bar
9
+
10
+ module ModuleInEnclosingModule;end
11
+ class ClassInEnclosingModule;end
12
+ def method_in_enclosing_module;end
13
+ CONSTANT_IN_ENCLOSING_MODULE = 0
14
+
15
+ describe "Examples trying to access constants defined in an enclosing module" do
16
+
17
+ it "can access Modules" do
18
+ ModuleInEnclosingModule
19
+ end
20
+ it "can access Classes" do
21
+ ClassInEnclosingModule.new
22
+ end
23
+ it "can access CONSTANTS" do
24
+ CONSTANT_IN_ENCLOSING_MODULE
25
+ end
26
+ it "can NOT access methods" do
27
+ lambda {method_in_enclosing_module}.should raise_error(/undefined/)
28
+ end
29
+
30
+ describe "from a nested example group" do
31
+
32
+ it "can access Modules" do
33
+ ModuleInEnclosingModule
34
+ end
35
+ it "can access Classes" do
36
+ ClassInEnclosingModule.new
37
+ end
38
+ it "can access CONSTANTS" do
39
+ CONSTANT_IN_ENCLOSING_MODULE
40
+ end
41
+ it "can NOT access methods" do
42
+ lambda {method_in_enclosing_module}.should raise_error(/undefined/)
43
+ end
44
+
45
+ end
46
+
47
+ end
48
+
49
+ describe "Examples trying to access constants defined in the example group" do
50
+
51
+ module ModuleDefinedInGroup;end
52
+ class ClassDefinedInGroup; end
53
+ def method_defined_in_group; end
54
+ CONSTANT_DEFINED_IN_GROUP = 0
55
+
56
+ it "can access Modules" do
57
+ ModuleDefinedInGroup
58
+ end
59
+ it "can access Classes" do
60
+ ClassDefinedInGroup.new
61
+ end
62
+ it "can access CONSTANTS" do
63
+ CONSTANT_DEFINED_IN_GROUP
64
+ end
65
+ it "can access methods" do
66
+ method_defined_in_group
67
+ end
68
+
69
+ describe "that live inside a nested group" do
70
+ it "can access Modules" do
71
+ ModuleDefinedInGroup
72
+ end
73
+ it "can access Classes" do
74
+ ClassDefinedInGroup.new
75
+ end
76
+ it "can access CONSTANTS" do
77
+ CONSTANT_DEFINED_IN_GROUP
78
+ end
79
+ it "can access methods" do
80
+ method_defined_in_group
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end