newbamboo-rspec 1.1.12

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 (324) hide show
  1. data/.autotest +4 -0
  2. data/History.txt +1263 -0
  3. data/License.txt +22 -0
  4. data/Manifest.txt +327 -0
  5. data/README.txt +57 -0
  6. data/Rakefile +104 -0
  7. data/TODO.txt +18 -0
  8. data/bin/autospec +4 -0
  9. data/bin/spec +4 -0
  10. data/examples/failing/README.txt +7 -0
  11. data/examples/failing/diffing_spec.rb +36 -0
  12. data/examples/failing/failing_autogenerated_docstrings_example.rb +19 -0
  13. data/examples/failing/failure_in_after.rb +10 -0
  14. data/examples/failing/failure_in_before.rb +10 -0
  15. data/examples/failing/mocking_example.rb +40 -0
  16. data/examples/failing/mocking_with_flexmock.rb +26 -0
  17. data/examples/failing/mocking_with_mocha.rb +25 -0
  18. data/examples/failing/mocking_with_rr.rb +27 -0
  19. data/examples/failing/partial_mock_example.rb +20 -0
  20. data/examples/failing/predicate_example.rb +34 -0
  21. data/examples/failing/raising_example.rb +47 -0
  22. data/examples/failing/spec_helper.rb +3 -0
  23. data/examples/failing/syntax_error_example.rb +7 -0
  24. data/examples/failing/team_spec.rb +44 -0
  25. data/examples/failing/timeout_behaviour.rb +7 -0
  26. data/examples/passing/autogenerated_docstrings_example.rb +25 -0
  27. data/examples/passing/before_and_after_example.rb +40 -0
  28. data/examples/passing/behave_as_example.rb +45 -0
  29. data/examples/passing/custom_expectation_matchers.rb +54 -0
  30. data/examples/passing/custom_formatter.rb +12 -0
  31. data/examples/passing/dynamic_spec.rb +9 -0
  32. data/examples/passing/file_accessor.rb +19 -0
  33. data/examples/passing/file_accessor_spec.rb +38 -0
  34. data/examples/passing/greeter_spec.rb +31 -0
  35. data/examples/passing/helper_method_example.rb +14 -0
  36. data/examples/passing/io_processor.rb +8 -0
  37. data/examples/passing/io_processor_spec.rb +21 -0
  38. data/examples/passing/legacy_spec.rb +11 -0
  39. data/examples/passing/mocking_example.rb +27 -0
  40. data/examples/passing/multi_threaded_example_group_runner.rb +26 -0
  41. data/examples/passing/nested_classes_example.rb +36 -0
  42. data/examples/passing/partial_mock_example.rb +29 -0
  43. data/examples/passing/pending_example.rb +20 -0
  44. data/examples/passing/predicate_example.rb +27 -0
  45. data/examples/passing/priority.txt +1 -0
  46. data/examples/passing/shared_example_group_example.rb +81 -0
  47. data/examples/passing/shared_stack_examples.rb +36 -0
  48. data/examples/passing/simple_matcher_example.rb +31 -0
  49. data/examples/passing/spec_helper.rb +3 -0
  50. data/examples/passing/stack.rb +36 -0
  51. data/examples/passing/stack_spec.rb +64 -0
  52. data/examples/passing/stack_spec_with_nested_example_groups.rb +67 -0
  53. data/examples/passing/stubbing_example.rb +69 -0
  54. data/examples/passing/yielding_example.rb +33 -0
  55. data/examples/ruby1.9.compatibility/access_to_constants_spec.rb +86 -0
  56. data/features/before_and_after_blocks/before_and_after_blocks.feature +168 -0
  57. data/features/example_groups/autogenerated_docstrings.feature +45 -0
  58. data/features/example_groups/example_group_with_should_methods.feature +17 -0
  59. data/features/example_groups/nested_groups.feature +17 -0
  60. data/features/example_groups/output.feature +20 -0
  61. data/features/interop/examples_and_tests_together.feature +31 -0
  62. data/features/interop/test_but_not_test_unit.feature +14 -0
  63. data/features/interop/test_case_with_should_methods.feature +17 -0
  64. data/features/mock_framework_integration/use_flexmock.feature +27 -0
  65. data/features/step_definitions/running_rspec.rb +54 -0
  66. data/features/support/env.rb +26 -0
  67. data/features/support/helpers/cmdline.rb +9 -0
  68. data/features/support/matchers/smart_match.rb +37 -0
  69. data/init.rb +9 -0
  70. data/lib/adapters/mock_frameworks/flexmock.rb +24 -0
  71. data/lib/adapters/mock_frameworks/mocha.rb +20 -0
  72. data/lib/adapters/mock_frameworks/rr.rb +22 -0
  73. data/lib/adapters/mock_frameworks/rspec.rb +20 -0
  74. data/lib/autotest/discover.rb +3 -0
  75. data/lib/autotest/rspec.rb +47 -0
  76. data/lib/spec/dsl/main.rb +87 -0
  77. data/lib/spec/dsl.rb +1 -0
  78. data/lib/spec/example/before_and_after_hooks.rb +99 -0
  79. data/lib/spec/example/errors.rb +30 -0
  80. data/lib/spec/example/example_group.rb +26 -0
  81. data/lib/spec/example/example_group_factory.rb +98 -0
  82. data/lib/spec/example/example_group_methods.rb +376 -0
  83. data/lib/spec/example/example_matcher.rb +44 -0
  84. data/lib/spec/example/example_methods.rb +137 -0
  85. data/lib/spec/example/module_reopening_fix.rb +21 -0
  86. data/lib/spec/example/pending.rb +18 -0
  87. data/lib/spec/example/shared_example_group.rb +59 -0
  88. data/lib/spec/example.rb +187 -0
  89. data/lib/spec/expectations/differs/default.rb +66 -0
  90. data/lib/spec/expectations/errors.rb +12 -0
  91. data/lib/spec/expectations/extensions/object.rb +63 -0
  92. data/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
  93. data/lib/spec/expectations/extensions.rb +2 -0
  94. data/lib/spec/expectations/handler.rb +32 -0
  95. data/lib/spec/expectations.rb +60 -0
  96. data/lib/spec/interop/test/unit/autorunner.rb +6 -0
  97. data/lib/spec/interop/test/unit/testcase.rb +73 -0
  98. data/lib/spec/interop/test/unit/testresult.rb +6 -0
  99. data/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
  100. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
  101. data/lib/spec/interop/test.rb +12 -0
  102. data/lib/spec/matchers/be.rb +208 -0
  103. data/lib/spec/matchers/be_close.rb +21 -0
  104. data/lib/spec/matchers/change.rb +148 -0
  105. data/lib/spec/matchers/eql.rb +25 -0
  106. data/lib/spec/matchers/equal.rb +25 -0
  107. data/lib/spec/matchers/errors.rb +5 -0
  108. data/lib/spec/matchers/exist.rb +16 -0
  109. data/lib/spec/matchers/generated_descriptions.rb +48 -0
  110. data/lib/spec/matchers/has.rb +15 -0
  111. data/lib/spec/matchers/have.rb +150 -0
  112. data/lib/spec/matchers/include.rb +80 -0
  113. data/lib/spec/matchers/match.rb +22 -0
  114. data/lib/spec/matchers/match_array.rb +79 -0
  115. data/lib/spec/matchers/method_missing.rb +9 -0
  116. data/lib/spec/matchers/operator_matcher.rb +70 -0
  117. data/lib/spec/matchers/raise_error.rb +128 -0
  118. data/lib/spec/matchers/respond_to.rb +71 -0
  119. data/lib/spec/matchers/satisfy.rb +47 -0
  120. data/lib/spec/matchers/simple_matcher.rb +132 -0
  121. data/lib/spec/matchers/throw_symbol.rb +106 -0
  122. data/lib/spec/matchers/wrap_expectation.rb +55 -0
  123. data/lib/spec/matchers.rb +141 -0
  124. data/lib/spec/mocks/argument_expectation.rb +49 -0
  125. data/lib/spec/mocks/argument_matchers.rb +237 -0
  126. data/lib/spec/mocks/error_generator.rb +82 -0
  127. data/lib/spec/mocks/errors.rb +10 -0
  128. data/lib/spec/mocks/extensions/object.rb +3 -0
  129. data/lib/spec/mocks/extensions.rb +1 -0
  130. data/lib/spec/mocks/framework.rb +15 -0
  131. data/lib/spec/mocks/message_expectation.rb +331 -0
  132. data/lib/spec/mocks/methods.rb +51 -0
  133. data/lib/spec/mocks/mock.rb +55 -0
  134. data/lib/spec/mocks/order_group.rb +29 -0
  135. data/lib/spec/mocks/proxy.rb +230 -0
  136. data/lib/spec/mocks/space.rb +28 -0
  137. data/lib/spec/mocks/spec_methods.rb +55 -0
  138. data/lib/spec/mocks.rb +200 -0
  139. data/lib/spec/rake/spectask.rb +225 -0
  140. data/lib/spec/rake/verify_rcov.rb +52 -0
  141. data/lib/spec/ruby.rb +9 -0
  142. data/lib/spec/runner/backtrace_tweaker.rb +58 -0
  143. data/lib/spec/runner/class_and_arguments_parser.rb +14 -0
  144. data/lib/spec/runner/command_line.rb +35 -0
  145. data/lib/spec/runner/configuration.rb +166 -0
  146. data/lib/spec/runner/drb_command_line.rb +20 -0
  147. data/lib/spec/runner/example_group_runner.rb +70 -0
  148. data/lib/spec/runner/formatter/base_formatter.rb +79 -0
  149. data/lib/spec/runner/formatter/base_text_formatter.rb +127 -0
  150. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +27 -0
  151. data/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
  152. data/lib/spec/runner/formatter/html_formatter.rb +340 -0
  153. data/lib/spec/runner/formatter/nested_text_formatter.rb +65 -0
  154. data/lib/spec/runner/formatter/profile_formatter.rb +51 -0
  155. data/lib/spec/runner/formatter/progress_bar_formatter.rb +34 -0
  156. data/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  157. data/lib/spec/runner/formatter/specdoc_formatter.rb +39 -0
  158. data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
  159. data/lib/spec/runner/heckle_runner.rb +74 -0
  160. data/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
  161. data/lib/spec/runner/option_parser.rb +204 -0
  162. data/lib/spec/runner/options.rb +320 -0
  163. data/lib/spec/runner/reporter.rb +167 -0
  164. data/lib/spec/runner/spec_parser.rb +73 -0
  165. data/lib/spec/runner.rb +88 -0
  166. data/lib/spec/version.rb +15 -0
  167. data/lib/spec.rb +7 -0
  168. data/resources/rake/examples.rake +7 -0
  169. data/resources/rake/examples_with_rcov.rake +9 -0
  170. data/resources/rake/failing_examples_with_html.rake +9 -0
  171. data/resources/rake/verify_rcov.rake +7 -0
  172. data/resources/spec/example_group_with_should_methods.rb +12 -0
  173. data/resources/spec/simple_spec.rb +8 -0
  174. data/resources/test/spec_and_test_together.rb +57 -0
  175. data/resources/test/spec_including_test_but_not_unit.rb +11 -0
  176. data/resources/test/test_case_with_should_methods.rb +30 -0
  177. data/rspec.gemspec +32 -0
  178. data/spec/README.jruby +15 -0
  179. data/spec/autotest/autotest_helper.rb +6 -0
  180. data/spec/autotest/autotest_matchers.rb +47 -0
  181. data/spec/autotest/discover_spec.rb +8 -0
  182. data/spec/autotest/failed_results_re_spec.rb +24 -0
  183. data/spec/autotest/rspec_spec.rb +114 -0
  184. data/spec/rspec_suite.rb +6 -0
  185. data/spec/ruby_forker.rb +13 -0
  186. data/spec/spec/dsl/main_spec.rb +88 -0
  187. data/spec/spec/example/example_group_class_definition_spec.rb +49 -0
  188. data/spec/spec/example/example_group_factory_spec.rb +224 -0
  189. data/spec/spec/example/example_group_methods_spec.rb +653 -0
  190. data/spec/spec/example/example_group_spec.rb +661 -0
  191. data/spec/spec/example/example_matcher_spec.rb +79 -0
  192. data/spec/spec/example/example_methods_spec.rb +204 -0
  193. data/spec/spec/example/helper_method_spec.rb +24 -0
  194. data/spec/spec/example/nested_example_group_spec.rb +71 -0
  195. data/spec/spec/example/pending_module_spec.rb +139 -0
  196. data/spec/spec/example/predicate_matcher_spec.rb +21 -0
  197. data/spec/spec/example/shared_example_group_spec.rb +257 -0
  198. data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
  199. data/spec/spec/expectations/differs/default_spec.rb +127 -0
  200. data/spec/spec/expectations/extensions/object_spec.rb +45 -0
  201. data/spec/spec/expectations/fail_with_spec.rb +71 -0
  202. data/spec/spec/expectations/wrap_expectation_spec.rb +30 -0
  203. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  204. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  205. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  206. data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  207. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  208. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  209. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  210. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  211. data/spec/spec/interop/test/unit/spec_spec.rb +48 -0
  212. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
  213. data/spec/spec/interop/test/unit/testcase_spec.rb +49 -0
  214. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
  215. data/spec/spec/matchers/be_close_spec.rb +41 -0
  216. data/spec/spec/matchers/be_spec.rb +303 -0
  217. data/spec/spec/matchers/change_spec.rb +329 -0
  218. data/spec/spec/matchers/description_generation_spec.rb +172 -0
  219. data/spec/spec/matchers/eql_spec.rb +29 -0
  220. data/spec/spec/matchers/equal_spec.rb +29 -0
  221. data/spec/spec/matchers/exist_spec.rb +57 -0
  222. data/spec/spec/matchers/handler_spec.rb +111 -0
  223. data/spec/spec/matchers/has_spec.rb +63 -0
  224. data/spec/spec/matchers/have_spec.rb +399 -0
  225. data/spec/spec/matchers/include_spec.rb +88 -0
  226. data/spec/spec/matchers/match_array_spec.rb +83 -0
  227. data/spec/spec/matchers/match_spec.rb +37 -0
  228. data/spec/spec/matchers/matcher_methods_spec.rb +66 -0
  229. data/spec/spec/matchers/operator_matcher_spec.rb +191 -0
  230. data/spec/spec/matchers/raise_error_spec.rb +333 -0
  231. data/spec/spec/matchers/respond_to_spec.rb +116 -0
  232. data/spec/spec/matchers/satisfy_spec.rb +36 -0
  233. data/spec/spec/matchers/simple_matcher_spec.rb +93 -0
  234. data/spec/spec/matchers/throw_symbol_spec.rb +96 -0
  235. data/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
  236. data/spec/spec/mocks/argument_expectation_spec.rb +23 -0
  237. data/spec/spec/mocks/at_least_spec.rb +97 -0
  238. data/spec/spec/mocks/at_most_spec.rb +93 -0
  239. data/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  240. data/spec/spec/mocks/bug_report_10263_spec.rb +24 -0
  241. data/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
  242. data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
  243. data/spec/spec/mocks/bug_report_496.rb +19 -0
  244. data/spec/spec/mocks/bug_report_600_spec.rb +22 -0
  245. data/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  246. data/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  247. data/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  248. data/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  249. data/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
  250. data/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
  251. data/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
  252. data/spec/spec/mocks/mock_ordering_spec.rb +84 -0
  253. data/spec/spec/mocks/mock_space_spec.rb +54 -0
  254. data/spec/spec/mocks/mock_spec.rb +579 -0
  255. data/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  256. data/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  257. data/spec/spec/mocks/null_object_mock_spec.rb +54 -0
  258. data/spec/spec/mocks/once_counts_spec.rb +53 -0
  259. data/spec/spec/mocks/options_hash_spec.rb +35 -0
  260. data/spec/spec/mocks/partial_mock_spec.rb +149 -0
  261. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
  262. data/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
  263. data/spec/spec/mocks/precise_counts_spec.rb +52 -0
  264. data/spec/spec/mocks/record_messages_spec.rb +26 -0
  265. data/spec/spec/mocks/stub_spec.rb +194 -0
  266. data/spec/spec/mocks/stubbed_message_expectations_spec.rb +14 -0
  267. data/spec/spec/mocks/twice_counts_spec.rb +67 -0
  268. data/spec/spec/package/bin_spec_spec.rb +22 -0
  269. data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
  270. data/spec/spec/runner/command_line_spec.rb +141 -0
  271. data/spec/spec/runner/configuration_spec.rb +301 -0
  272. data/spec/spec/runner/drb_command_line_spec.rb +97 -0
  273. data/spec/spec/runner/empty_file.txt +0 -0
  274. data/spec/spec/runner/example_group_runner_spec.rb +33 -0
  275. data/spec/spec/runner/examples.txt +2 -0
  276. data/spec/spec/runner/failed.txt +3 -0
  277. data/spec/spec/runner/formatter/base_formatter_spec.rb +23 -0
  278. data/spec/spec/runner/formatter/base_text_formatter_spec.rb +23 -0
  279. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
  280. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
  281. data/spec/spec/runner/formatter/html_formatted-1.8.4.html +365 -0
  282. data/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +387 -0
  283. data/spec/spec/runner/formatter/html_formatted-1.8.5.html +371 -0
  284. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +381 -0
  285. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +379 -0
  286. data/spec/spec/runner/formatter/html_formatted-1.8.7.html +379 -0
  287. data/spec/spec/runner/formatter/html_formatted-1.9.1.html +379 -0
  288. data/spec/spec/runner/formatter/html_formatter_spec.rb +62 -0
  289. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +318 -0
  290. data/spec/spec/runner/formatter/profile_formatter_spec.rb +65 -0
  291. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +145 -0
  292. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
  293. data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +104 -0
  294. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
  295. data/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +365 -0
  296. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +373 -0
  297. data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +373 -0
  298. data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +373 -0
  299. data/spec/spec/runner/heckle_runner_spec.rb +78 -0
  300. data/spec/spec/runner/heckler_spec.rb +20 -0
  301. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +45 -0
  302. data/spec/spec/runner/option_parser_spec.rb +396 -0
  303. data/spec/spec/runner/options_spec.rb +469 -0
  304. data/spec/spec/runner/output_one_time_fixture.rb +7 -0
  305. data/spec/spec/runner/output_one_time_fixture_runner.rb +8 -0
  306. data/spec/spec/runner/output_one_time_spec.rb +16 -0
  307. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +62 -0
  308. data/spec/spec/runner/reporter_spec.rb +238 -0
  309. data/spec/spec/runner/resources/a_bar.rb +0 -0
  310. data/spec/spec/runner/resources/a_foo.rb +0 -0
  311. data/spec/spec/runner/resources/a_spec.rb +1 -0
  312. data/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
  313. data/spec/spec/runner/resources/utf8_encoded.rb +7 -0
  314. data/spec/spec/runner/spec.opts +2 -0
  315. data/spec/spec/runner/spec_drb.opts +1 -0
  316. data/spec/spec/runner/spec_parser/spec_parser_fixture.rb +70 -0
  317. data/spec/spec/runner/spec_parser_spec.rb +91 -0
  318. data/spec/spec/runner/spec_spaced.opts +2 -0
  319. data/spec/spec/runner_spec.rb +11 -0
  320. data/spec/spec/spec_classes.rb +133 -0
  321. data/spec/spec/spec_spec.rb +21 -0
  322. data/spec/spec.opts +6 -0
  323. data/spec/spec_helper.rb +107 -0
  324. metadata +388 -0
@@ -0,0 +1,48 @@
1
+ require File.dirname(__FILE__) + '/test_unit_spec_helper'
2
+
3
+ describe "ExampleGroup with test/unit/interop" do
4
+ include TestUnitSpecHelper
5
+
6
+ describe "with passing examples" do
7
+ it "should output 0 failures" do
8
+ output = ruby("#{resources}/spec_that_passes.rb")
9
+ output.should include("1 example, 0 failures")
10
+ end
11
+
12
+ it "should return an exit code of 0" do
13
+ ruby("#{resources}/spec_that_passes.rb")
14
+ $?.should == 0
15
+ end
16
+ end
17
+
18
+ describe "with failing examples" do
19
+ it "should output 1 failure" do
20
+ output = ruby("#{resources}/spec_that_fails.rb")
21
+ output.should include("1 example, 1 failure")
22
+ end
23
+
24
+ it "should return an exit code of 256" do
25
+ ruby("#{resources}/spec_that_fails.rb")
26
+ $?.should == 256
27
+ end
28
+ end
29
+
30
+ describe "with example that raises an error" do
31
+ it "should output 1 failure" do
32
+ output = ruby("#{resources}/spec_with_errors.rb")
33
+ output.should include("1 example, 1 failure")
34
+ end
35
+
36
+ it "should return an exit code of 256" do
37
+ ruby("#{resources}/spec_with_errors.rb")
38
+ $?.should == 256
39
+ end
40
+ end
41
+
42
+ describe "options hash" do
43
+ it "should be exposed" do
44
+ output = ruby("#{resources}/spec_with_options_hash.rb")
45
+ output.should include("1 example, 0 failures")
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,18 @@
1
+ require File.dirname(__FILE__) + '/../../../../spec_helper'
2
+ require File.dirname(__FILE__) + '/../../../../ruby_forker'
3
+
4
+ module TestUnitSpecHelper
5
+ include RubyForker
6
+
7
+ def resources
8
+ File.dirname(__FILE__) + "/resources"
9
+ end
10
+
11
+ def run_script(file_name)
12
+ output = ruby(file_name)
13
+ if !$?.success? || output.include?("FAILED") || output.include?("Error")
14
+ raise output
15
+ end
16
+ output
17
+ end
18
+ end
@@ -0,0 +1,49 @@
1
+ require File.dirname(__FILE__) + '/test_unit_spec_helper'
2
+
3
+ describe "Test::Unit::TestCase" do
4
+ include TestUnitSpecHelper
5
+
6
+ before(:each) do
7
+ @dir = File.dirname(__FILE__) + "/resources"
8
+ end
9
+
10
+ describe "with passing test case" do
11
+ it "should output 0 failures" do
12
+ output = ruby("#{@dir}/test_case_that_passes.rb")
13
+ output.should include("1 example, 0 failures")
14
+ end
15
+
16
+ it "should return an exit code of 0" do
17
+ ruby("#{@dir}/test_case_that_passes.rb")
18
+ $?.should == 0
19
+ end
20
+ end
21
+
22
+ describe "with failing test case" do
23
+ it "should output 1 failure" do
24
+ output = ruby("#{@dir}/test_case_that_fails.rb")
25
+ output.should include("1 example, 1 failure")
26
+ end
27
+
28
+ it "should return an exit code of 256" do
29
+ ruby("#{@dir}/test_case_that_fails.rb")
30
+ $?.should == 256
31
+ end
32
+ end
33
+
34
+ describe "with test case that raises an error" do
35
+ it "should output 1 failure" do
36
+ output = ruby("#{@dir}/test_case_with_errors.rb")
37
+ output.should include("1 example, 1 failure")
38
+ end
39
+
40
+ it "should return an exit code of 256" do
41
+ ruby("#{@dir}/test_case_with_errors.rb")
42
+ $?.should == 256
43
+ end
44
+ end
45
+
46
+ describe "not yet implemented examples:" do
47
+ it "this example should be reported as pending (not an error)"
48
+ end
49
+ end
@@ -0,0 +1,9 @@
1
+ require File.dirname(__FILE__) + '/test_unit_spec_helper'
2
+
3
+ describe "TestSuiteAdapter" do
4
+ include TestUnitSpecHelper
5
+ it "should pass" do
6
+ dir = File.dirname(__FILE__)
7
+ run_script "#{dir}/resources/testsuite_adapter_spec_with_test_unit.rb"
8
+ end
9
+ end
@@ -0,0 +1,41 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
+ module Spec
3
+ module Matchers
4
+ describe "be_close" do
5
+ it "should match when value == target" do
6
+ be_close(5.0, 0.5).matches?(5.0).should be_true
7
+ end
8
+ it "should match when value < (target + delta)" do
9
+ be_close(5.0, 0.5).matches?(5.49).should be_true
10
+ end
11
+ it "should match when value > (target - delta)" do
12
+ be_close(5.0, 0.5).matches?(4.51).should be_true
13
+ end
14
+ it "should not match when value == (target - delta)" do
15
+ be_close(5.0, 0.5).matches?(4.5).should be_false
16
+ end
17
+ it "should not match when value < (target - delta)" do
18
+ be_close(5.0, 0.5).matches?(4.49).should be_false
19
+ end
20
+ it "should not match when value == (target + delta)" do
21
+ be_close(5.0, 0.5).matches?(5.5).should be_false
22
+ end
23
+ it "should not match when value > (target + delta)" do
24
+ be_close(5.0, 0.5).matches?(5.51).should be_false
25
+ end
26
+ it "should provide a useful failure message" do
27
+ #given
28
+ matcher = be_close(5.0, 0.5)
29
+ #when
30
+ matcher.matches?(5.51)
31
+ #then
32
+ matcher.failure_message.should == "expected 5.0 +/- (< 0.5), got 5.51"
33
+ end
34
+ it "should describe itself" do
35
+ matcher = be_close(5.0, 0.5)
36
+ matcher.matches?(5.1)
37
+ matcher.description.should == "be close to 5.0 (within +- 0.5)"
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,303 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
+
3
+ describe "should be_predicate" do
4
+ it "should pass when actual returns true for :predicate?" do
5
+ actual = stub("actual", :happy? => true)
6
+ actual.should be_happy
7
+ end
8
+
9
+ it "should pass when actual returns true for :predicates? (present tense)" do
10
+ actual = stub("actual", :exists? => true, :exist? => true)
11
+ actual.should be_exist
12
+ end
13
+
14
+ it "should fail when actual returns false for :predicate?" do
15
+ actual = stub("actual", :happy? => false)
16
+ lambda {
17
+ actual.should be_happy
18
+ }.should fail_with("expected happy? to return true, got false")
19
+ end
20
+
21
+ it "should fail when actual does not respond to :predicate?" do
22
+ lambda {
23
+ Object.new.should be_happy
24
+ }.should raise_error(NameError, /happy\?/)
25
+ end
26
+
27
+ it "should fail on error other than NameError" do
28
+ actual = stub("actual")
29
+ actual.should_receive(:foo?).and_raise("aaaah")
30
+ lambda {
31
+ actual.should be_foo
32
+ }.should raise_error(/aaaah/)
33
+ end
34
+
35
+ it "should fail on error other than NameError (with the present tense predicate)" do
36
+ actual = Object.new
37
+ actual.should_receive(:foos?).and_raise("aaaah")
38
+ lambda {
39
+ actual.should be_foo
40
+ }.should raise_error(/aaaah/)
41
+ end
42
+ end
43
+
44
+ describe "should_not be_predicate" do
45
+ it "should pass when actual returns false for :sym?" do
46
+ actual = stub("actual", :happy? => false)
47
+ actual.should_not be_happy
48
+ end
49
+
50
+ it "should fail when actual returns true for :sym?" do
51
+ actual = stub("actual", :happy? => true)
52
+ lambda {
53
+ actual.should_not be_happy
54
+ }.should fail_with("expected happy? to return false, got true")
55
+ end
56
+
57
+ it "should fail when actual does not respond to :sym?" do
58
+ lambda {
59
+ Object.new.should_not be_happy
60
+ }.should raise_error(NameError)
61
+ end
62
+ end
63
+
64
+ describe "should be_predicate(*args)" do
65
+ it "should pass when actual returns true for :predicate?(*args)" do
66
+ actual = mock("actual")
67
+ actual.should_receive(:older_than?).with(3).and_return(true)
68
+ actual.should be_older_than(3)
69
+ end
70
+
71
+ it "should fail when actual returns false for :predicate?(*args)" do
72
+ actual = mock("actual")
73
+ actual.should_receive(:older_than?).with(3).and_return(false)
74
+ lambda {
75
+ actual.should be_older_than(3)
76
+ }.should fail_with("expected older_than?(3) to return true, got false")
77
+ end
78
+
79
+ it "should fail when actual does not respond to :predicate?" do
80
+ lambda {
81
+ Object.new.should be_older_than(3)
82
+ }.should raise_error(NameError)
83
+ end
84
+ end
85
+
86
+ describe "should_not be_predicate(*args)" do
87
+ it "should pass when actual returns false for :predicate?(*args)" do
88
+ actual = mock("actual")
89
+ actual.should_receive(:older_than?).with(3).and_return(false)
90
+ actual.should_not be_older_than(3)
91
+ end
92
+
93
+ it "should fail when actual returns true for :predicate?(*args)" do
94
+ actual = mock("actual")
95
+ actual.should_receive(:older_than?).with(3).and_return(true)
96
+ lambda {
97
+ actual.should_not be_older_than(3)
98
+ }.should fail_with("expected older_than?(3) to return false, got true")
99
+ end
100
+
101
+ it "should fail when actual does not respond to :predicate?" do
102
+ lambda {
103
+ Object.new.should_not be_older_than(3)
104
+ }.should raise_error(NameError)
105
+ end
106
+ end
107
+
108
+ describe "should be_true" do
109
+ it "should pass when actual equal(true)" do
110
+ true.should be_true
111
+ end
112
+
113
+ it "should fail when actual equal(false)" do
114
+ lambda {
115
+ false.should be_true
116
+ }.should fail_with("expected true, got false")
117
+ end
118
+ end
119
+
120
+ describe "should be_false" do
121
+ it "should pass when actual equal(false)" do
122
+ false.should be_false
123
+ end
124
+
125
+ it "should fail when actual equal(true)" do
126
+ lambda {
127
+ true.should be_false
128
+ }.should fail_with("expected false, got true")
129
+ end
130
+ end
131
+
132
+ describe "should be_nil" do
133
+ it "should pass when actual is nil" do
134
+ nil.should be_nil
135
+ end
136
+
137
+ it "should fail when actual is not nil" do
138
+ lambda {
139
+ :not_nil.should be_nil
140
+ }.should fail_with("expected nil? to return true, got false")
141
+ end
142
+ end
143
+
144
+ describe "should_not be_nil" do
145
+ it "should pass when actual is not nil" do
146
+ :not_nil.should_not be_nil
147
+ end
148
+
149
+ it "should fail when actual is nil" do
150
+ lambda {
151
+ nil.should_not be_nil
152
+ }.should fail_with("expected nil? to return false, got true")
153
+ end
154
+ end
155
+
156
+ describe "should be <" do
157
+ it "should pass when < operator returns true" do
158
+ 3.should be < 4
159
+ end
160
+
161
+ it "should fail when < operator returns false" do
162
+ lambda { 3.should be < 3 }.should fail_with("expected < 3, got 3")
163
+ end
164
+ end
165
+
166
+ describe "should be <=" do
167
+ it "should pass when <= operator returns true" do
168
+ 3.should be <= 4
169
+ 4.should be <= 4
170
+ end
171
+
172
+ it "should fail when <= operator returns false" do
173
+ lambda { 3.should be <= 2 }.should fail_with("expected <= 2, got 3")
174
+ end
175
+ end
176
+
177
+ describe "should be >=" do
178
+ it "should pass when >= operator returns true" do
179
+ 4.should be >= 4
180
+ 5.should be >= 4
181
+ end
182
+
183
+ it "should fail when >= operator returns false" do
184
+ lambda { 3.should be >= 4 }.should fail_with("expected >= 4, got 3")
185
+ end
186
+ end
187
+
188
+ describe "should be >" do
189
+ it "should pass when > operator returns true" do
190
+ 5.should be > 4
191
+ end
192
+
193
+ it "should fail when > operator returns false" do
194
+ lambda { 3.should be > 4 }.should fail_with("expected > 4, got 3")
195
+ end
196
+ end
197
+
198
+ describe "should be ==" do
199
+ it "should pass when == operator returns true" do
200
+ 5.should be == 5
201
+ end
202
+
203
+ it "should fail when == operator returns false" do
204
+ lambda { 3.should be == 4 }.should fail_with("expected == 4, got 3")
205
+ end
206
+ end
207
+
208
+ describe "should be ===" do
209
+ it "should pass when === operator returns true" do
210
+ Hash.should be === Hash.new
211
+ end
212
+
213
+ it "should fail when === operator returns false" do
214
+ lambda { Hash.should be === "not a hash" }.should fail_with(%[expected === not a hash, got Hash])
215
+ end
216
+ end
217
+
218
+ describe "should_not with operators" do
219
+ it "should coach user to stop using operators with should_not" do
220
+ lambda {
221
+ 5.should_not be < 6
222
+ }.should raise_error(/not only FAILED,\nit reads really poorly./m)
223
+ end
224
+ end
225
+
226
+ describe "should be" do
227
+ it "should pass if actual is true or a set value" do
228
+ true.should be
229
+ 1.should be
230
+ end
231
+
232
+ it "should fail if actual is false" do
233
+ lambda {false.should be}.should fail_with("expected true, got false")
234
+ end
235
+
236
+ it "should fail if actual is nil" do
237
+ lambda {nil.should be}.should fail_with("expected true, got nil")
238
+ end
239
+ end
240
+
241
+ describe "should be(value)" do
242
+ it "should pass if actual.equal?(value)" do
243
+ 5.should be(5)
244
+ end
245
+ it "should fail if !actual.equal?(value)" do
246
+ lambda { 5.should be(6) }.should fail_with("expected 6, got 5")
247
+ end
248
+ end
249
+
250
+ describe "'should be' with operator" do
251
+ it "should include 'be' in the description" do
252
+ (be > 6).description.should =~ /be > 6/
253
+ (be >= 6).description.should =~ /be >= 6/
254
+ (be <= 6).description.should =~ /be <= 6/
255
+ (be < 6).description.should =~ /be < 6/
256
+ end
257
+ end
258
+
259
+
260
+ describe "arbitrary predicate with DelegateClass" do
261
+ it "should access methods defined in the delegating class (LH[#48])" do
262
+ pending(%{
263
+ Looks like DelegateClass is delegating #should to the
264
+ delegate. Not sure how to fix this one. Or if we even should."
265
+ })
266
+ require 'delegate'
267
+ class ArrayDelegate < DelegateClass(Array)
268
+ def initialize(array)
269
+ @internal_array = array
270
+ super(@internal_array)
271
+ end
272
+
273
+ def large?
274
+ @internal_array.size >= 5
275
+ end
276
+ end
277
+
278
+ delegate = ArrayDelegate.new([1,2,3,4,5,6])
279
+ delegate.should be_large
280
+ end
281
+ end
282
+
283
+ describe "be_a, be_an" do
284
+ it "should pass when class matches" do
285
+ "foobar".should be_a(String)
286
+ [1,2,3].should be_an(Array)
287
+ end
288
+
289
+ it "should fail when class does not match" do
290
+ "foobar".should_not be_a(Hash)
291
+ [1,2,3].should_not be_an(Integer)
292
+ end
293
+ end
294
+
295
+ describe "be_an_instance_of" do
296
+ it "passes when direct class matches" do
297
+ 5.should be_an_instance_of(Fixnum)
298
+ end
299
+
300
+ it "fails when class is higher up hierarchy" do
301
+ 5.should_not be_an_instance_of(Numeric)
302
+ end
303
+ end