ageweke-rspec 1.2.9

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 (378) hide show
  1. data/.document +7 -0
  2. data/History.rdoc +1496 -0
  3. data/License.txt +22 -0
  4. data/Manifest.txt +377 -0
  5. data/README.rdoc +55 -0
  6. data/Rakefile +145 -0
  7. data/Ruby1.9.rdoc +31 -0
  8. data/TODO.txt +17 -0
  9. data/Upgrade.rdoc +199 -0
  10. data/bin/autospec +4 -0
  11. data/bin/spec +5 -0
  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/passing/custom_formatter.rb +11 -0
  30. data/examples/passing/custom_matchers.rb +54 -0
  31. data/examples/passing/dynamic_spec.rb +7 -0
  32. data/examples/passing/file_accessor.rb +18 -0
  33. data/examples/passing/file_accessor_spec.rb +37 -0
  34. data/examples/passing/filtered_formatter.rb +17 -0
  35. data/examples/passing/filtered_formatter_example.rb +31 -0
  36. data/examples/passing/greeter_spec.rb +30 -0
  37. data/examples/passing/helper_method_example.rb +12 -0
  38. data/examples/passing/implicit_docstrings_example.rb +16 -0
  39. data/examples/passing/io_processor.rb +8 -0
  40. data/examples/passing/io_processor_spec.rb +20 -0
  41. data/examples/passing/mocking_example.rb +25 -0
  42. data/examples/passing/multi_threaded_example_group_runner.rb +26 -0
  43. data/examples/passing/nested_classes_example.rb +35 -0
  44. data/examples/passing/options_example.rb +29 -0
  45. data/examples/passing/options_formatter.rb +20 -0
  46. data/examples/passing/partial_mock_example.rb +27 -0
  47. data/examples/passing/pending_example.rb +18 -0
  48. data/examples/passing/predicate_example.rb +25 -0
  49. data/examples/passing/shared_example_group_example.rb +79 -0
  50. data/examples/passing/shared_stack_examples.rb +36 -0
  51. data/examples/passing/simple_matcher_example.rb +29 -0
  52. data/examples/passing/stack.rb +36 -0
  53. data/examples/passing/stack_spec.rb +63 -0
  54. data/examples/passing/stack_spec_with_nested_example_groups.rb +66 -0
  55. data/examples/passing/stubbing_example.rb +67 -0
  56. data/examples/passing/yielding_example.rb +31 -0
  57. data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +85 -0
  58. data/features/before_and_after_blocks/before_and_after_blocks.feature +167 -0
  59. data/features/command_line/line_number_option.feature +56 -0
  60. data/features/command_line/line_number_option_with_example_with_no_name.feature +22 -0
  61. data/features/example_groups/define_example_attribute.feature +41 -0
  62. data/features/example_groups/example_group_with_should_methods.feature +29 -0
  63. data/features/example_groups/implicit_docstrings.feature +59 -0
  64. data/features/example_groups/nested_groups.feature +32 -0
  65. data/features/expectations/customized_message.feature +54 -0
  66. data/features/expectations/expect_change.feature +65 -0
  67. data/features/expectations/expect_error.feature +44 -0
  68. data/features/extensions/custom_example_group.feature +19 -0
  69. data/features/formatters/custom_formatter.feature +30 -0
  70. data/features/interop/examples_and_tests_together.feature +84 -0
  71. data/features/interop/rspec_output.feature +25 -0
  72. data/features/interop/test_but_not_test_unit.feature +26 -0
  73. data/features/interop/test_case_with_should_methods.feature +46 -0
  74. data/features/load_paths/add_lib_to_load_path.feature +20 -0
  75. data/features/load_paths/add_spec_to_load_path.feature +20 -0
  76. data/features/matchers/define_diffable_matcher.feature +26 -0
  77. data/features/matchers/define_matcher.feature +179 -0
  78. data/features/matchers/define_matcher_outside_rspec.feature +38 -0
  79. data/features/matchers/define_matcher_with_fluent_interface.feature +27 -0
  80. data/features/matchers/define_wrapped_matcher.feature +29 -0
  81. data/features/mock_framework_integration/use_flexmock.feature +27 -0
  82. data/features/mock_framework_integration/use_mocha.feature +27 -0
  83. data/features/mock_framework_integration/use_rr.feature +27 -0
  84. data/features/mocks/mix_stubs_and_mocks.feature +22 -0
  85. data/features/mocks/stub_implementation.feature +26 -0
  86. data/features/pending/pending_examples.feature +81 -0
  87. data/features/runner/specify_line_number.feature +32 -0
  88. data/features/spec_helper/spec_helper.feature +25 -0
  89. data/features/step_definitions/running_rspec_steps.rb +43 -0
  90. data/features/subject/explicit_subject.feature +31 -0
  91. data/features/subject/implicit_subject.feature +43 -0
  92. data/features/support/env.rb +82 -0
  93. data/features/support/matchers/smart_match.rb +12 -0
  94. data/init.rb +9 -0
  95. data/lib/autotest/discover.rb +3 -0
  96. data/lib/autotest/rspec.rb +47 -0
  97. data/lib/spec.rb +8 -0
  98. data/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
  99. data/lib/spec/adapters/mock_frameworks/mocha.rb +25 -0
  100. data/lib/spec/adapters/mock_frameworks/rr.rb +22 -0
  101. data/lib/spec/adapters/mock_frameworks/rspec.rb +21 -0
  102. data/lib/spec/autorun.rb +3 -0
  103. data/lib/spec/deprecation.rb +40 -0
  104. data/lib/spec/dsl.rb +1 -0
  105. data/lib/spec/dsl/main.rb +92 -0
  106. data/lib/spec/example.rb +164 -0
  107. data/lib/spec/example/args_and_options.rb +27 -0
  108. data/lib/spec/example/before_and_after_hooks.rb +93 -0
  109. data/lib/spec/example/errors.rb +25 -0
  110. data/lib/spec/example/example_group.rb +10 -0
  111. data/lib/spec/example/example_group_factory.rb +82 -0
  112. data/lib/spec/example/example_group_hierarchy.rb +53 -0
  113. data/lib/spec/example/example_group_methods.rb +282 -0
  114. data/lib/spec/example/example_group_proxy.rb +61 -0
  115. data/lib/spec/example/example_matcher.rb +43 -0
  116. data/lib/spec/example/example_methods.rb +148 -0
  117. data/lib/spec/example/example_proxy.rb +41 -0
  118. data/lib/spec/example/module_reopening_fix.rb +43 -0
  119. data/lib/spec/example/pending.rb +18 -0
  120. data/lib/spec/example/predicate_matchers.rb +46 -0
  121. data/lib/spec/example/shared_example_group.rb +59 -0
  122. data/lib/spec/example/subject.rb +108 -0
  123. data/lib/spec/expectations.rb +35 -0
  124. data/lib/spec/expectations/errors.rb +12 -0
  125. data/lib/spec/expectations/extensions.rb +1 -0
  126. data/lib/spec/expectations/extensions/kernel.rb +52 -0
  127. data/lib/spec/expectations/fail_with.rb +45 -0
  128. data/lib/spec/expectations/handler.rb +50 -0
  129. data/lib/spec/interop/test.rb +44 -0
  130. data/lib/spec/interop/test/unit/autorunner.rb +6 -0
  131. data/lib/spec/interop/test/unit/testcase.rb +56 -0
  132. data/lib/spec/interop/test/unit/testresult.rb +6 -0
  133. data/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
  134. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
  135. data/lib/spec/matchers.rb +195 -0
  136. data/lib/spec/matchers/be.rb +210 -0
  137. data/lib/spec/matchers/be_close.rb +32 -0
  138. data/lib/spec/matchers/be_instance_of.rb +26 -0
  139. data/lib/spec/matchers/be_kind_of.rb +26 -0
  140. data/lib/spec/matchers/change.rb +151 -0
  141. data/lib/spec/matchers/compatibility.rb +14 -0
  142. data/lib/spec/matchers/dsl.rb +20 -0
  143. data/lib/spec/matchers/eql.rb +42 -0
  144. data/lib/spec/matchers/equal.rb +53 -0
  145. data/lib/spec/matchers/errors.rb +5 -0
  146. data/lib/spec/matchers/exist.rb +16 -0
  147. data/lib/spec/matchers/extensions/instance_exec.rb +31 -0
  148. data/lib/spec/matchers/generated_descriptions.rb +36 -0
  149. data/lib/spec/matchers/has.rb +35 -0
  150. data/lib/spec/matchers/have.rb +151 -0
  151. data/lib/spec/matchers/include.rb +44 -0
  152. data/lib/spec/matchers/match.rb +21 -0
  153. data/lib/spec/matchers/match_array.rb +71 -0
  154. data/lib/spec/matchers/matcher.rb +87 -0
  155. data/lib/spec/matchers/method_missing.rb +9 -0
  156. data/lib/spec/matchers/operator_matcher.rb +78 -0
  157. data/lib/spec/matchers/pretty.rb +37 -0
  158. data/lib/spec/matchers/raise_error.rb +129 -0
  159. data/lib/spec/matchers/respond_to.rb +71 -0
  160. data/lib/spec/matchers/satisfy.rb +47 -0
  161. data/lib/spec/matchers/simple_matcher.rb +133 -0
  162. data/lib/spec/matchers/throw_symbol.rb +104 -0
  163. data/lib/spec/matchers/wrap_expectation.rb +55 -0
  164. data/lib/spec/mocks.rb +200 -0
  165. data/lib/spec/mocks/argument_expectation.rb +51 -0
  166. data/lib/spec/mocks/argument_matchers.rb +237 -0
  167. data/lib/spec/mocks/error_generator.rb +92 -0
  168. data/lib/spec/mocks/errors.rb +10 -0
  169. data/lib/spec/mocks/example_methods.rb +69 -0
  170. data/lib/spec/mocks/extensions.rb +1 -0
  171. data/lib/spec/mocks/extensions/object.rb +3 -0
  172. data/lib/spec/mocks/framework.rb +15 -0
  173. data/lib/spec/mocks/message_expectation.rb +329 -0
  174. data/lib/spec/mocks/methods.rb +89 -0
  175. data/lib/spec/mocks/mock.rb +71 -0
  176. data/lib/spec/mocks/order_group.rb +29 -0
  177. data/lib/spec/mocks/proxy.rb +245 -0
  178. data/lib/spec/mocks/space.rb +28 -0
  179. data/lib/spec/rake/spectask.rb +230 -0
  180. data/lib/spec/rake/verify_rcov.rb +52 -0
  181. data/lib/spec/ruby.rb +9 -0
  182. data/lib/spec/runner.rb +66 -0
  183. data/lib/spec/runner/backtrace_tweaker.rb +77 -0
  184. data/lib/spec/runner/class_and_arguments_parser.rb +14 -0
  185. data/lib/spec/runner/command_line.rb +15 -0
  186. data/lib/spec/runner/configuration.rb +194 -0
  187. data/lib/spec/runner/differs/default.rb +93 -0
  188. data/lib/spec/runner/differs/load-diff-lcs.rb +12 -0
  189. data/lib/spec/runner/drb_command_line.rb +33 -0
  190. data/lib/spec/runner/example_group_runner.rb +59 -0
  191. data/lib/spec/runner/extensions/kernel.rb +9 -0
  192. data/lib/spec/runner/formatter/base_formatter.rb +139 -0
  193. data/lib/spec/runner/formatter/base_text_formatter.rb +142 -0
  194. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
  195. data/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
  196. data/lib/spec/runner/formatter/html_formatter.rb +338 -0
  197. data/lib/spec/runner/formatter/nested_text_formatter.rb +47 -0
  198. data/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
  199. data/lib/spec/runner/formatter/profile_formatter.rb +47 -0
  200. data/lib/spec/runner/formatter/progress_bar_formatter.rb +33 -0
  201. data/lib/spec/runner/formatter/silent_formatter.rb +10 -0
  202. data/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  203. data/lib/spec/runner/formatter/specdoc_formatter.rb +33 -0
  204. data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
  205. data/lib/spec/runner/heckle_runner.rb +72 -0
  206. data/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
  207. data/lib/spec/runner/line_number_query.rb +78 -0
  208. data/lib/spec/runner/option_parser.rb +225 -0
  209. data/lib/spec/runner/options.rb +406 -0
  210. data/lib/spec/runner/reporter.rb +171 -0
  211. data/lib/spec/stubs/cucumber.rb +5 -0
  212. data/lib/spec/test/unit.rb +10 -0
  213. data/lib/spec/version.rb +14 -0
  214. data/resources/helpers/cmdline.rb +8 -0
  215. data/resources/rake/examples.rake +7 -0
  216. data/resources/rake/examples_with_rcov.rake +9 -0
  217. data/resources/rake/failing_examples_with_html.rake +9 -0
  218. data/resources/rake/verify_rcov.rake +7 -0
  219. data/spec/README.jruby +15 -0
  220. data/spec/autotest/autotest_helper.rb +8 -0
  221. data/spec/autotest/autotest_matchers.rb +38 -0
  222. data/spec/autotest/discover_spec.rb +8 -0
  223. data/spec/autotest/failed_results_re_spec.rb +31 -0
  224. data/spec/autotest/rspec_spec.rb +111 -0
  225. data/spec/ruby_forker.rb +13 -0
  226. data/spec/spec.opts +6 -0
  227. data/spec/spec/dsl/main_spec.rb +95 -0
  228. data/spec/spec/example/example_group_class_definition_spec.rb +51 -0
  229. data/spec/spec/example/example_group_factory_spec.rb +180 -0
  230. data/spec/spec/example/example_group_methods_spec.rb +758 -0
  231. data/spec/spec/example/example_group_proxy_spec.rb +107 -0
  232. data/spec/spec/example/example_group_spec.rb +643 -0
  233. data/spec/spec/example/example_matcher_spec.rb +86 -0
  234. data/spec/spec/example/example_methods_spec.rb +162 -0
  235. data/spec/spec/example/example_proxy_spec.rb +57 -0
  236. data/spec/spec/example/helper_method_spec.rb +24 -0
  237. data/spec/spec/example/nested_example_group_spec.rb +71 -0
  238. data/spec/spec/example/pending_module_spec.rb +58 -0
  239. data/spec/spec/example/predicate_matcher_spec.rb +41 -0
  240. data/spec/spec/example/shared_example_group_spec.rb +257 -0
  241. data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
  242. data/spec/spec/example/subject_spec.rb +103 -0
  243. data/spec/spec/expectations/differs/default_spec.rb +194 -0
  244. data/spec/spec/expectations/extensions/kernel_spec.rb +45 -0
  245. data/spec/spec/expectations/fail_with_spec.rb +96 -0
  246. data/spec/spec/expectations/handler_spec.rb +206 -0
  247. data/spec/spec/expectations/wrap_expectation_spec.rb +30 -0
  248. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  249. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  250. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  251. data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  252. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  253. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  254. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  255. data/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +22 -0
  256. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  257. data/spec/spec/interop/test/unit/spec_spec.rb +48 -0
  258. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
  259. data/spec/spec/interop/test/unit/testcase_spec.rb +50 -0
  260. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
  261. data/spec/spec/matchers/be_close_spec.rb +50 -0
  262. data/spec/spec/matchers/be_instance_of_spec.rb +36 -0
  263. data/spec/spec/matchers/be_kind_of_spec.rb +33 -0
  264. data/spec/spec/matchers/be_spec.rb +311 -0
  265. data/spec/spec/matchers/change_spec.rb +349 -0
  266. data/spec/spec/matchers/compatibility_spec.rb +28 -0
  267. data/spec/spec/matchers/description_generation_spec.rb +160 -0
  268. data/spec/spec/matchers/dsl_spec.rb +34 -0
  269. data/spec/spec/matchers/eql_spec.rb +33 -0
  270. data/spec/spec/matchers/equal_spec.rb +57 -0
  271. data/spec/spec/matchers/exist_spec.rb +65 -0
  272. data/spec/spec/matchers/has_spec.rb +81 -0
  273. data/spec/spec/matchers/have_spec.rb +396 -0
  274. data/spec/spec/matchers/include_spec.rb +88 -0
  275. data/spec/spec/matchers/match_array_spec.rb +108 -0
  276. data/spec/spec/matchers/match_spec.rb +57 -0
  277. data/spec/spec/matchers/matcher_methods_spec.rb +63 -0
  278. data/spec/spec/matchers/matcher_spec.rb +228 -0
  279. data/spec/spec/matchers/matchers_spec.rb +2 -0
  280. data/spec/spec/matchers/operator_matcher_spec.rb +191 -0
  281. data/spec/spec/matchers/raise_error_spec.rb +333 -0
  282. data/spec/spec/matchers/respond_to_spec.rb +116 -0
  283. data/spec/spec/matchers/satisfy_spec.rb +36 -0
  284. data/spec/spec/matchers/simple_matcher_spec.rb +93 -0
  285. data/spec/spec/matchers/throw_symbol_spec.rb +96 -0
  286. data/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
  287. data/spec/spec/mocks/argument_expectation_spec.rb +23 -0
  288. data/spec/spec/mocks/argument_matchers_spec.rb +19 -0
  289. data/spec/spec/mocks/at_least_spec.rb +97 -0
  290. data/spec/spec/mocks/at_most_spec.rb +93 -0
  291. data/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  292. data/spec/spec/mocks/bug_report_10263_spec.rb +27 -0
  293. data/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
  294. data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
  295. data/spec/spec/mocks/bug_report_496_spec.rb +19 -0
  296. data/spec/spec/mocks/bug_report_600_spec.rb +22 -0
  297. data/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  298. data/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  299. data/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  300. data/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  301. data/spec/spec/mocks/bug_report_830_spec.rb +21 -0
  302. data/spec/spec/mocks/double_spec.rb +12 -0
  303. data/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
  304. data/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
  305. data/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
  306. data/spec/spec/mocks/mock_ordering_spec.rb +94 -0
  307. data/spec/spec/mocks/mock_space_spec.rb +54 -0
  308. data/spec/spec/mocks/mock_spec.rb +594 -0
  309. data/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  310. data/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  311. data/spec/spec/mocks/null_object_mock_spec.rb +54 -0
  312. data/spec/spec/mocks/once_counts_spec.rb +53 -0
  313. data/spec/spec/mocks/options_hash_spec.rb +35 -0
  314. data/spec/spec/mocks/partial_mock_spec.rb +164 -0
  315. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
  316. data/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
  317. data/spec/spec/mocks/precise_counts_spec.rb +52 -0
  318. data/spec/spec/mocks/record_messages_spec.rb +26 -0
  319. data/spec/spec/mocks/stub_chain_spec.rb +42 -0
  320. data/spec/spec/mocks/stub_implementation_spec.rb +31 -0
  321. data/spec/spec/mocks/stub_spec.rb +203 -0
  322. data/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
  323. data/spec/spec/mocks/twice_counts_spec.rb +67 -0
  324. data/spec/spec/mocks/unstub_spec.rb +127 -0
  325. data/spec/spec/package/bin_spec_spec.rb +16 -0
  326. data/spec/spec/rake/spectask_spec.rb +150 -0
  327. data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
  328. data/spec/spec/runner/command_line_spec.rb +141 -0
  329. data/spec/spec/runner/configuration_spec.rb +320 -0
  330. data/spec/spec/runner/drb_command_line_spec.rb +148 -0
  331. data/spec/spec/runner/empty_file.txt +0 -0
  332. data/spec/spec/runner/example_group_runner_spec.rb +26 -0
  333. data/spec/spec/runner/examples.txt +2 -0
  334. data/spec/spec/runner/failed.txt +3 -0
  335. data/spec/spec/runner/formatter/base_formatter_spec.rb +30 -0
  336. data/spec/spec/runner/formatter/base_text_formatter_spec.rb +113 -0
  337. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
  338. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
  339. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +377 -0
  340. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +377 -0
  341. data/spec/spec/runner/formatter/html_formatted-1.8.7.html +377 -0
  342. data/spec/spec/runner/formatter/html_formatted-1.9.1.html +377 -0
  343. data/spec/spec/runner/formatter/html_formatter_spec.rb +118 -0
  344. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +305 -0
  345. data/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
  346. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +149 -0
  347. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
  348. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
  349. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +371 -0
  350. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +371 -0
  351. data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +371 -0
  352. data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +371 -0
  353. data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +106 -0
  354. data/spec/spec/runner/heckle_runner_spec.rb +78 -0
  355. data/spec/spec/runner/heckler_spec.rb +20 -0
  356. data/spec/spec/runner/line_number_query/line_number_query_fixture.rb +70 -0
  357. data/spec/spec/runner/line_number_query_spec.rb +129 -0
  358. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +51 -0
  359. data/spec/spec/runner/option_parser_spec.rb +554 -0
  360. data/spec/spec/runner/options_spec.rb +554 -0
  361. data/spec/spec/runner/output_one_time_fixture.rb +7 -0
  362. data/spec/spec/runner/output_one_time_fixture_runner.rb +7 -0
  363. data/spec/spec/runner/output_one_time_spec.rb +15 -0
  364. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +105 -0
  365. data/spec/spec/runner/reporter_spec.rb +244 -0
  366. data/spec/spec/runner/resources/a_bar.rb +0 -0
  367. data/spec/spec/runner/resources/a_foo.rb +0 -0
  368. data/spec/spec/runner/resources/a_spec.rb +1 -0
  369. data/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
  370. data/spec/spec/runner/resources/utf8_encoded.rb +8 -0
  371. data/spec/spec/runner/spec.opts +2 -0
  372. data/spec/spec/runner/spec_drb.opts +2 -0
  373. data/spec/spec/runner/spec_spaced.opts +2 -0
  374. data/spec/spec/runner_spec.rb +13 -0
  375. data/spec/spec_helper.rb +112 -0
  376. data/spec/support/macros.rb +29 -0
  377. data/spec/support/spec_classes.rb +133 -0
  378. metadata +505 -0
@@ -0,0 +1,56 @@
1
+ Feature: Spec and test together
2
+
3
+ As an RSpec user
4
+ I want to run one example identified by the line number
5
+
6
+ Background:
7
+ Given a file named "example.rb" with:
8
+ """
9
+ describe "a group" do
10
+
11
+ it "has a first example" do
12
+
13
+ end
14
+
15
+ it "has a second example" do
16
+
17
+ end
18
+
19
+ end
20
+ """
21
+
22
+ Scenario: two examples - first example on declaration line
23
+ When I run "spec example.rb:3 --format nested"
24
+ Then the stdout should include "1 example, 0 failures"
25
+ And the stdout should include "has a first example"
26
+ But the stdout should not match "has a second example"
27
+
28
+ Scenario: two examples - first example from line inside declaration
29
+ When I run "spec example.rb:4 --format nested"
30
+ Then the stdout should include "1 example, 0 failures"
31
+ And the stdout should include "has a first example"
32
+ But the stdout should not match "has a second example"
33
+
34
+ Scenario: two examples - first example from line below declaration
35
+ When I run "spec example.rb:6 --format nested"
36
+ Then the stdout should include "1 example, 0 failures"
37
+ And the stdout should include "has a first example"
38
+ But the stdout should not match "has a second example"
39
+
40
+ Scenario: two examples - second example from line below declaration
41
+ When I run "spec example.rb:7 --format nested"
42
+ Then the stdout should include "1 example, 0 failures"
43
+ And the stdout should include "has a second example"
44
+ But the stdout should not match "has a first example"
45
+
46
+ Scenario: two examples - both examples from the group declaration
47
+ When I run "spec example.rb:1 --format nested"
48
+ Then the stdout should include "2 examples, 0 failures"
49
+ And the stdout should include "has a second example"
50
+ And the stdout should include "has a first example"
51
+
52
+ Scenario: two examples - both examples from above the first example declaration
53
+ When I run "spec example.rb:2 --format nested"
54
+ Then the stdout should include "2 examples, 0 failures"
55
+ And the stdout should include "has a second example"
56
+ And the stdout should include "has a first example"
@@ -0,0 +1,22 @@
1
+ Feature: Spec and test together
2
+
3
+ As an RSpec user
4
+ I want to run one example identified by the line number
5
+
6
+ Background:
7
+ Given a file named "example.rb" with:
8
+ """
9
+ describe 9 do
10
+
11
+ it { should be > 8 }
12
+
13
+ it { should be < 10 }
14
+
15
+ end
16
+ """
17
+
18
+ Scenario: two examples - first example on declaration line
19
+ When I run "spec example.rb:3 --format nested"
20
+ Then the stdout should include "1 example, 0 failures"
21
+ Then the stdout should include "should be > 8"
22
+ But the stdout should not match "should be < 10"
@@ -0,0 +1,41 @@
1
+ Feature: Define example attribute
2
+
3
+ In order to streamline process
4
+ As an RSpec user
5
+ I want to easily define helper methods that act as a variable assignment
6
+
7
+ It is fairly common to start with a local variable in one example, use the same
8
+ local variable in the next, and then extract the declaration of that variable
9
+ to before(:each). This requires converting the locals to instance variables.
10
+
11
+ This feature streamlines the process by defining a helper method so you can extract
12
+ the duplication without having to change other references to the same variables
13
+ to @instance_variables.
14
+
15
+ Scenario:
16
+ Given a file named "counter_spec.rb" with:
17
+ """
18
+ require 'spec/autorun'
19
+
20
+ class Counter
21
+ def initialize
22
+ @count = 0
23
+ end
24
+ def count
25
+ @count += 1
26
+ end
27
+ end
28
+
29
+ describe Counter do
30
+ let(:counter) { Counter.new }
31
+ it "returns 1 the first time" do
32
+ counter.count.should == 1
33
+ end
34
+ it "returns 2 the second time because the counter itself is cached by the 'assign' method" do
35
+ counter.count
36
+ counter.count.should == 2
37
+ end
38
+ end
39
+ """
40
+ When I run "spec counter_spec.rb"
41
+ Then the stdout should include "2 examples, 0 failures"
@@ -0,0 +1,29 @@
1
+ Feature: Spec::ExampleGroup with should methods
2
+
3
+ As an RSpec adopter accustomed to classes and methods
4
+ I want to use should_* methods in an ExampleGroup
5
+ So that I use RSpec with classes and methods that look more like RSpec examples
6
+
7
+ Scenario Outline: Example Group class with should methods
8
+ Given a file named "example_group_with_should_methods.rb" with:
9
+ """
10
+ require 'spec/autorun'
11
+
12
+ class MySpec < Spec::ExampleGroup
13
+ def should_pass_with_should
14
+ 1.should == 1
15
+ end
16
+
17
+ def should_fail_with_should
18
+ 1.should == 2
19
+ end
20
+ end
21
+ """
22
+ When I run "<Command> example_group_with_should_methods.rb"
23
+ Then the exit code should be 256
24
+ And the stdout should include "2 examples, 1 failure"
25
+
26
+ Scenarios: Run with ruby and spec
27
+ | Command |
28
+ | ruby |
29
+ | spec |
@@ -0,0 +1,59 @@
1
+ Feature: implicit docstrings
2
+
3
+ As an RSpec user
4
+ I want examples to generate their own names
5
+ So that I can reduce duplication between example names and example code
6
+
7
+ Scenario Outline: run passing examples
8
+ Given a file named "implicit_docstrings_example.rb" with:
9
+ """
10
+ require 'spec/autorun'
11
+ describe "Examples with no docstrings generate their own:" do
12
+
13
+ specify { 3.should be < 5 }
14
+
15
+ specify { ["a"].should include("a") }
16
+
17
+ specify { [1,2,3].should respond_to(:size) }
18
+
19
+ end
20
+ """
21
+
22
+ When I run "<Command> implicit_docstrings_example.rb -fs"
23
+
24
+ Then the stdout should include /should be < 5/
25
+ And the stdout should include /should include "a"/
26
+ And the stdout should include /should respond to #size/
27
+
28
+ Scenarios: Run with ruby and spec
29
+ | Command |
30
+ | ruby |
31
+ | spec |
32
+
33
+ Scenario Outline: run failing examples
34
+ Given a file named "failing_implicit_docstrings_example.rb" with:
35
+ """
36
+ require 'spec/autorun'
37
+ describe "Failing examples with no descriptions" do
38
+
39
+ # description is auto-generated as "should equal(5)" based on the last #should
40
+ it do
41
+ 3.should equal(2)
42
+ 5.should equal(5)
43
+ end
44
+
45
+ it { 3.should be > 5 }
46
+
47
+ it { ["a"].should include("b") }
48
+
49
+ it { [1,2,3].should_not respond_to(:size) }
50
+
51
+ end
52
+ """
53
+
54
+ When I run "<Command> failing_implicit_docstrings_example.rb -fs"
55
+
56
+ Then the stdout should include /should equal 2/
57
+ And the stdout should include /should be > 5/
58
+ And the stdout should include /should include "b"/
59
+ And the stdout should include /should not respond to #size/
@@ -0,0 +1,32 @@
1
+ Feature: Nested example groups
2
+
3
+ As an RSpec user
4
+ I want to nest examples groups
5
+ So that I can better organize my examples
6
+
7
+ Scenario Outline: Nested example groups
8
+ Given a file named "nested_example_groups.rb" with:
9
+ """
10
+ require 'spec/autorun'
11
+
12
+ describe "Some Object" do
13
+ describe "with some more context" do
14
+ it "should do this" do
15
+ true.should be_true
16
+ end
17
+ end
18
+ describe "with some other context" do
19
+ it "should do that" do
20
+ false.should be_false
21
+ end
22
+ end
23
+ end
24
+ """
25
+ When I run "<Command> nested_example_groups.rb -fs"
26
+ Then the stdout should include /Some Object with some more context/
27
+ And the stdout should include /Some Object with some other context/
28
+
29
+ Scenarios: Run with ruby and spec
30
+ | Command |
31
+ | ruby |
32
+ | spec |
@@ -0,0 +1,54 @@
1
+ Feature: customized message
2
+
3
+ In order to get the feedback I want
4
+ As an RSpec user
5
+ I want to customize the failure message per example
6
+
7
+ Scenario: one additional method
8
+ Given a file named "node_spec.rb.rb" with:
9
+ """
10
+ class Node
11
+ def initialize(state=:waiting)
12
+ @state = state
13
+ end
14
+ def state
15
+ @state
16
+ end
17
+ def waiting?
18
+ @state == :waiting
19
+ end
20
+ def started?
21
+ @state == :started
22
+ end
23
+ def start
24
+ @state = :started
25
+ end
26
+ end
27
+
28
+ describe "a new Node" do
29
+ it "should be waiting" do
30
+ node = Node.new(:started) #start w/ started to trigger failure
31
+ node.should be_waiting, "node.state: #{node.state} (first example)"
32
+ end
33
+
34
+ it "should not be started" do
35
+ node = Node.new(:started) #start w/ started to trigger failure
36
+ node.should_not be_started, "node.state: #{node.state} (second example)"
37
+ end
38
+ end
39
+
40
+ describe "node.start" do
41
+ it "should change the state" do
42
+ node = Node.new(:started) #start w/ started to trigger failure
43
+ lambda {node.start}.should change{node.state}, "expected a change"
44
+ end
45
+ end
46
+
47
+ """
48
+ When I run "spec node_spec.rb.rb --format specdoc"
49
+ Then the stdout should include "3 examples, 3 failures"
50
+ And the stdout should not match "to return true, got false"
51
+ And the stdout should not match "to return false, got true"
52
+ And the stdout should include "node.state: started (first example)"
53
+ And the stdout should include "node.state: started (second example)"
54
+ And the stdout should include "expected a change"
@@ -0,0 +1,65 @@
1
+ Feature: expect change
2
+
3
+ Expect some code (wrapped in a proc) to change the state of some object.
4
+
5
+ Scenario: expecting change
6
+ Given a file named "expect_change.rb" with:
7
+ """
8
+ class Counter
9
+ class << self
10
+ def increment
11
+ @count ||= 0
12
+ @count += 1
13
+ end
14
+
15
+ def count
16
+ @count ||= 0
17
+ end
18
+ end
19
+ end
20
+
21
+ describe Counter, "#increment" do
22
+ it "should increment the count" do
23
+ expect{Counter.increment}.to change{Counter.count}.from(0).to(1)
24
+ end
25
+
26
+ # deliberate failure
27
+ it "should increment the count by 2" do
28
+ expect{Counter.increment}.to change{Counter.count}.by(2)
29
+ end
30
+ end
31
+ """
32
+ When I run "spec expect_change.rb"
33
+ Then the stdout should include "2 examples, 1 failure"
34
+ Then the stdout should include "should have been changed by 2, but was changed by 1"
35
+
36
+ Scenario: expecting no change
37
+ Given a file named "expect_no_change.rb" with:
38
+ """
39
+ class Counter
40
+ class << self
41
+ def increment
42
+ @count ||= 0
43
+ @count += 1
44
+ end
45
+
46
+ def count
47
+ @count ||= 0
48
+ end
49
+ end
50
+ end
51
+
52
+ describe Counter, "#increment" do
53
+ it "should not increment the count by 2" do
54
+ expect{Counter.increment}.to_not change{Counter.count}.from(0).to(2)
55
+ end
56
+
57
+ # deliberate failure
58
+ it "should not increment the count by 1" do
59
+ expect{Counter.increment}.to_not change{Counter.count}.by(1)
60
+ end
61
+ end
62
+ """
63
+ When I run "spec expect_no_change.rb"
64
+ Then the stdout should include "2 examples, 1 failure"
65
+ Then the stdout should include "should not have changed, but did change from 1 to 2"
@@ -0,0 +1,44 @@
1
+ Feature: expect error
2
+
3
+ Expect a proc to change the state of some object.
4
+
5
+ Scenario: expect error
6
+ Given a file named "expect_error.rb" with:
7
+ """
8
+ describe Object, "#non_existent_message" do
9
+ it "should raise" do
10
+ expect{Object.non_existent_message}.to raise_error(NameError)
11
+ end
12
+ end
13
+
14
+ #deliberate failure
15
+ describe Object, "#public_instance_methods" do
16
+ it "should raise" do
17
+ expect{Object.public_instance_methods}.to raise_error(NameError)
18
+ end
19
+ end
20
+ """
21
+ When I run "spec expect_error.rb"
22
+ Then the stdout should include "2 examples, 1 failure"
23
+ Then the stdout should include "expected NameError but nothing was raised"
24
+
25
+ Scenario: expect no error
26
+ Given a file named "expect_no_error.rb" with:
27
+ """
28
+ describe Object, "#public_instance_methods" do
29
+ it "should not raise" do
30
+ expect{Object.public_instance_methods}.to_not raise_error(NameError)
31
+ end
32
+ end
33
+
34
+ #deliberate failure
35
+ describe Object, "#non_existent_message" do
36
+ it "should not raise" do
37
+ expect{Object.non_existent_message}.to_not raise_error(NameError)
38
+ end
39
+ end
40
+ """
41
+ When I run "spec expect_no_error.rb"
42
+ Then the stdout should include "2 examples, 1 failure"
43
+ Then the stdout should include "undefined method `non_existent_message'"
44
+
@@ -0,0 +1,19 @@
1
+ Feature: custom example group
2
+
3
+ Scenario: simple custom example group
4
+ Given a file named "custom_example_group_spec.rb" with:
5
+ """
6
+ class CustomGroup < Spec::ExampleGroup
7
+ end
8
+
9
+ Spec::Example::ExampleGroupFactory.default(CustomGroup)
10
+
11
+ describe "a custom group set as the default" do
12
+ it "becomes the default base class for example groups" do
13
+ CustomGroup.should === self
14
+ end
15
+ end
16
+ """
17
+ When I run "spec custom_example_group_spec.rb"
18
+ Then the stdout should include "1 example, 0 failures"
19
+
@@ -0,0 +1,30 @@
1
+ Feature: custom formatters
2
+
3
+ In order to format output/reporting to my particular needs
4
+ As an RSpec user
5
+ I want to create my own custom output formatters
6
+
7
+ Scenario: specdoc format
8
+ Given a file named "custom_formatter.rb" with:
9
+ """
10
+ require 'spec/runner/formatter/base_formatter'
11
+ class CustomFormatter < Spec::Runner::Formatter::BaseFormatter
12
+ def initialize(options, output)
13
+ @output = output
14
+ end
15
+ def example_started(proxy)
16
+ @output << "example: " << proxy.description
17
+ end
18
+ end
19
+ """
20
+ And a file named "simple_example_spec.rb" with:
21
+ """
22
+ describe "my group" do
23
+ specify "my example" do
24
+ end
25
+ end
26
+ """
27
+
28
+ When I run "spec simple_example_spec.rb --require custom_formatter.rb --format CustomFormatter"
29
+ Then the exit code should be 0
30
+ And the stdout should include "example: my example"