rspec 1.0.8 → 1.1.0

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 (301) hide show
  1. data/CHANGES +122 -2
  2. data/README +10 -9
  3. data/Rakefile +22 -49
  4. data/TODO +2 -0
  5. data/bin/spec +1 -1
  6. data/bin/spec_translator +8 -8
  7. data/examples/{auto_spec_description_example.rb → pure/autogenerated_docstrings_example.rb} +0 -0
  8. data/examples/{before_and_after_example.rb → pure/before_and_after_example.rb} +1 -0
  9. data/examples/{behave_as_example.rb → pure/behave_as_example.rb} +0 -0
  10. data/examples/{custom_expectation_matchers.rb → pure/custom_expectation_matchers.rb} +0 -0
  11. data/examples/{custom_formatter.rb → pure/custom_formatter.rb} +1 -0
  12. data/examples/{dynamic_spec.rb → pure/dynamic_spec.rb} +0 -0
  13. data/examples/{file_accessor.rb → pure/file_accessor.rb} +1 -0
  14. data/examples/{file_accessor_spec.rb → pure/file_accessor_spec.rb} +0 -0
  15. data/examples/{greeter_spec.rb → pure/greeter_spec.rb} +1 -0
  16. data/examples/{helper_method_example.rb → pure/helper_method_example.rb} +0 -0
  17. data/examples/{io_processor.rb → pure/io_processor.rb} +0 -0
  18. data/examples/{io_processor_spec.rb → pure/io_processor_spec.rb} +0 -0
  19. data/examples/{legacy_spec.rb → pure/legacy_spec.rb} +1 -0
  20. data/examples/{mocking_example.rb → pure/mocking_example.rb} +0 -0
  21. data/examples/pure/multi_threaded_behaviour_runner.rb +28 -0
  22. data/examples/pure/nested_classes_example.rb +36 -0
  23. data/examples/{partial_mock_example.rb → pure/partial_mock_example.rb} +0 -0
  24. data/examples/{pending_example.rb → pure/pending_example.rb} +0 -0
  25. data/examples/{predicate_example.rb → pure/predicate_example.rb} +0 -0
  26. data/examples/{priority.txt → pure/priority.txt} +0 -0
  27. data/examples/pure/shared_example_group_example.rb +66 -0
  28. data/examples/pure/shared_stack_examples.rb +38 -0
  29. data/examples/pure/spec_helper.rb +3 -0
  30. data/examples/{stack.rb → pure/stack.rb} +0 -0
  31. data/examples/{stack_spec.rb → pure/stack_spec.rb} +1 -35
  32. data/examples/pure/stack_spec_with_nested_example_groups.rb +67 -0
  33. data/examples/{stubbing_example.rb → pure/stubbing_example.rb} +0 -0
  34. data/examples/stories/adder.rb +13 -0
  35. data/examples/stories/addition +34 -0
  36. data/examples/stories/addition.rb +9 -0
  37. data/examples/stories/calculator.rb +65 -0
  38. data/examples/stories/game-of-life/README.txt +21 -0
  39. data/examples/stories/game-of-life/behaviour/everything.rb +6 -0
  40. data/examples/stories/game-of-life/behaviour/examples/examples.rb +3 -0
  41. data/examples/stories/game-of-life/behaviour/examples/game_behaviour.rb +35 -0
  42. data/examples/stories/game-of-life/behaviour/examples/grid_behaviour.rb +66 -0
  43. data/examples/stories/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +21 -0
  44. data/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +21 -0
  45. data/examples/stories/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +42 -0
  46. data/examples/stories/game-of-life/behaviour/stories/ICanCreateACell.story +42 -0
  47. data/examples/stories/game-of-life/behaviour/stories/ICanKillACell.story +17 -0
  48. data/examples/stories/game-of-life/behaviour/stories/TheGridWraps.story +53 -0
  49. data/examples/stories/game-of-life/behaviour/stories/create_a_cell.rb +52 -0
  50. data/examples/stories/game-of-life/behaviour/stories/helper.rb +6 -0
  51. data/examples/stories/game-of-life/behaviour/stories/kill_a_cell.rb +26 -0
  52. data/examples/stories/game-of-life/behaviour/stories/steps.rb +5 -0
  53. data/examples/stories/game-of-life/behaviour/stories/stories.rb +3 -0
  54. data/examples/stories/game-of-life/behaviour/stories/stories.txt +22 -0
  55. data/examples/stories/game-of-life/life.rb +3 -0
  56. data/examples/stories/game-of-life/life/game.rb +23 -0
  57. data/examples/stories/game-of-life/life/grid.rb +43 -0
  58. data/examples/stories/helper.rb +9 -0
  59. data/examples/stories/steps/addition_steps.rb +18 -0
  60. data/lib/autotest/rspec.rb +1 -2
  61. data/lib/spec.rb +30 -6
  62. data/lib/spec/example.rb +12 -0
  63. data/lib/spec/{dsl → example}/configuration.rb +48 -39
  64. data/lib/spec/{dsl → example}/errors.rb +2 -2
  65. data/lib/spec/example/example_group.rb +16 -0
  66. data/lib/spec/example/example_group_factory.rb +62 -0
  67. data/lib/spec/example/example_group_methods.rb +412 -0
  68. data/lib/spec/example/example_matcher.rb +42 -0
  69. data/lib/spec/example/example_methods.rb +101 -0
  70. data/lib/spec/example/module_reopening_fix.rb +21 -0
  71. data/lib/spec/example/pending.rb +18 -0
  72. data/lib/spec/example/shared_example_group.rb +58 -0
  73. data/lib/spec/expectations/differs/default.rb +15 -10
  74. data/lib/spec/expectations/errors.rb +7 -1
  75. data/lib/spec/expectations/extensions/object.rb +12 -7
  76. data/lib/spec/expectations/handler.rb +13 -4
  77. data/lib/spec/extensions.rb +2 -0
  78. data/lib/spec/extensions/class.rb +24 -0
  79. data/lib/spec/extensions/main.rb +54 -0
  80. data/lib/spec/extensions/object.rb +5 -1
  81. data/lib/spec/interop/test.rb +10 -0
  82. data/lib/spec/interop/test/unit/autorunner.rb +6 -0
  83. data/lib/spec/interop/test/unit/testcase.rb +61 -0
  84. data/lib/spec/interop/test/unit/testresult.rb +6 -0
  85. data/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
  86. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +60 -0
  87. data/lib/spec/matchers.rb +11 -15
  88. data/lib/spec/matchers/be.rb +23 -6
  89. data/lib/spec/matchers/change.rb +25 -1
  90. data/lib/spec/matchers/exist.rb +17 -0
  91. data/lib/spec/matchers/operator_matcher.rb +1 -0
  92. data/lib/spec/matchers/simple_matcher.rb +29 -0
  93. data/lib/spec/matchers/throw_symbol.rb +2 -0
  94. data/lib/spec/mocks.rb +5 -2
  95. data/lib/spec/mocks/argument_expectation.rb +1 -1
  96. data/lib/spec/mocks/message_expectation.rb +62 -44
  97. data/lib/spec/mocks/methods.rb +2 -2
  98. data/lib/spec/mocks/mock.rb +24 -3
  99. data/lib/spec/mocks/proxy.rb +26 -23
  100. data/lib/spec/mocks/space.rb +1 -1
  101. data/lib/spec/mocks/spec_methods.rb +20 -12
  102. data/lib/spec/rake/spectask.rb +19 -1
  103. data/lib/spec/rake/verify_rcov.rb +1 -1
  104. data/lib/spec/runner.rb +33 -10
  105. data/lib/spec/runner/backtrace_tweaker.rb +3 -3
  106. data/lib/spec/runner/class_and_arguments_parser.rb +16 -0
  107. data/lib/spec/runner/command_line.rb +18 -12
  108. data/lib/spec/runner/drb_command_line.rb +4 -5
  109. data/lib/spec/runner/example_group_runner.rb +59 -0
  110. data/lib/spec/runner/formatter/base_formatter.rb +10 -8
  111. data/lib/spec/runner/formatter/base_text_formatter.rb +18 -18
  112. data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +31 -0
  113. data/lib/spec/runner/formatter/failing_examples_formatter.rb +3 -5
  114. data/lib/spec/runner/formatter/html_formatter.rb +37 -27
  115. data/lib/spec/runner/formatter/profile_formatter.rb +47 -0
  116. data/lib/spec/runner/formatter/progress_bar_formatter.rb +3 -4
  117. data/lib/spec/runner/formatter/specdoc_formatter.rb +27 -13
  118. data/lib/spec/runner/formatter/story/html_formatter.rb +124 -0
  119. data/lib/spec/runner/formatter/story/plain_text_formatter.rb +123 -0
  120. data/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
  121. data/lib/spec/runner/heckle_runner.rb +9 -9
  122. data/lib/spec/runner/option_parser.rb +140 -138
  123. data/lib/spec/runner/options.rb +168 -90
  124. data/lib/spec/runner/reporter.rb +58 -40
  125. data/lib/spec/runner/spec_parser.rb +11 -8
  126. data/lib/spec/story.rb +10 -0
  127. data/lib/spec/story/extensions.rb +1 -0
  128. data/lib/spec/story/extensions/main.rb +86 -0
  129. data/lib/spec/story/given_scenario.rb +14 -0
  130. data/lib/spec/story/runner.rb +58 -0
  131. data/lib/spec/story/runner/plain_text_story_runner.rb +48 -0
  132. data/lib/spec/story/runner/scenario_collector.rb +18 -0
  133. data/lib/spec/story/runner/scenario_runner.rb +46 -0
  134. data/lib/spec/story/runner/story_mediator.rb +123 -0
  135. data/lib/spec/story/runner/story_parser.rb +227 -0
  136. data/lib/spec/story/runner/story_runner.rb +67 -0
  137. data/lib/spec/story/scenario.rb +14 -0
  138. data/lib/spec/story/step.rb +48 -0
  139. data/lib/spec/story/step_group.rb +89 -0
  140. data/lib/spec/story/step_mother.rb +37 -0
  141. data/lib/spec/story/story.rb +42 -0
  142. data/lib/spec/story/world.rb +124 -0
  143. data/lib/spec/version.rb +4 -5
  144. data/plugins/mock_frameworks/rspec.rb +1 -1
  145. data/spec/autotest/rspec_spec.rb +13 -7
  146. data/spec/autotest_helper.rb +4 -3
  147. data/spec/rspec_suite.rb +7 -0
  148. data/spec/ruby_forker.rb +13 -0
  149. data/spec/spec/example/configuration_spec.rb +290 -0
  150. data/spec/spec/example/example_group_class_definition_spec.rb +48 -0
  151. data/spec/spec/example/example_group_factory_spec.rb +129 -0
  152. data/spec/spec/example/example_group_methods_spec.rb +465 -0
  153. data/spec/spec/example/example_group_spec.rb +711 -0
  154. data/spec/spec/{dsl → example}/example_matcher_spec.rb +23 -18
  155. data/spec/spec/example/example_methods_spec.rb +75 -0
  156. data/spec/spec/example/example_runner_spec.rb +194 -0
  157. data/spec/spec/example/example_spec.rb +53 -0
  158. data/spec/spec/example/nested_example_group_spec.rb +59 -0
  159. data/spec/spec/example/pending_module_spec.rb +31 -0
  160. data/spec/spec/{dsl → example}/predicate_matcher_spec.rb +1 -1
  161. data/spec/spec/example/shared_example_group_spec.rb +265 -0
  162. data/spec/spec/example/subclassing_example_group_spec.rb +25 -0
  163. data/spec/spec/expectations/differs/default_spec.rb +5 -3
  164. data/spec/spec/expectations/extensions/object_spec.rb +63 -2
  165. data/spec/spec/extensions/main_spec.rb +50 -0
  166. data/spec/spec/interop/test/unit/test_unit_spec_helper.rb +14 -0
  167. data/spec/spec/interop/test/unit/testcase_spec.rb +10 -0
  168. data/spec/spec/interop/test/unit/testcase_spec_with_test_unit.rb +20 -0
  169. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
  170. data/spec/spec/interop/test/unit/testsuite_adapter_spec_with_test_unit.rb +34 -0
  171. data/spec/spec/matchers/be_spec.rb +15 -0
  172. data/spec/spec/matchers/change_spec.rb +87 -0
  173. data/spec/spec/matchers/description_generation_spec.rb +31 -37
  174. data/spec/spec/matchers/exist_spec.rb +31 -22
  175. data/spec/spec/matchers/handler_spec.rb +42 -1
  176. data/spec/spec/matchers/have_spec.rb +1 -1
  177. data/spec/spec/matchers/mock_constraint_matchers_spec.rb +1 -1
  178. data/spec/spec/matchers/operator_matcher_spec.rb +1 -1
  179. data/spec/spec/matchers/simple_matcher_spec.rb +31 -0
  180. data/spec/spec/matchers/throw_symbol_spec.rb +4 -1
  181. data/spec/spec/mocks/bug_report_10263.rb +24 -0
  182. data/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
  183. data/spec/spec/mocks/bug_report_8165_spec.rb +2 -2
  184. data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +1 -0
  185. data/spec/spec/mocks/mock_spec.rb +200 -102
  186. data/spec/spec/mocks/multiple_return_value_spec.rb +1 -1
  187. data/spec/spec/mocks/options_hash_spec.rb +19 -7
  188. data/spec/spec/mocks/partial_mock_spec.rb +31 -9
  189. data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +6 -0
  190. data/spec/spec/mocks/stub_spec.rb +120 -98
  191. data/spec/spec/package/bin_spec_spec.rb +7 -5
  192. data/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
  193. data/spec/spec/runner/command_line_spec.rb +140 -27
  194. data/spec/spec/runner/drb_command_line_spec.rb +39 -31
  195. data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +44 -0
  196. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +16 -11
  197. data/spec/spec/runner/formatter/html_formatter_spec.rb +60 -50
  198. data/spec/spec/runner/formatter/profile_formatter_spec.rb +65 -0
  199. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +29 -13
  200. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +14 -7
  201. data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +103 -0
  202. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +103 -39
  203. data/spec/spec/runner/formatter/story/html_formatter_spec.rb +56 -0
  204. data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +289 -0
  205. data/spec/spec/runner/heckle_runner_spec.rb +29 -14
  206. data/spec/spec/runner/heckler_spec.rb +4 -5
  207. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +5 -5
  208. data/spec/spec/runner/option_parser_spec.rb +86 -58
  209. data/spec/spec/runner/options_spec.rb +239 -120
  210. data/spec/spec/runner/output_one_time_fixture.rb +7 -0
  211. data/spec/spec/runner/output_one_time_fixture_runner.rb +8 -0
  212. data/spec/spec/runner/output_one_time_spec.rb +16 -0
  213. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +6 -6
  214. data/spec/spec/runner/reporter_spec.rb +147 -163
  215. data/spec/spec/runner/spec_parser_spec.rb +31 -0
  216. data/spec/spec/runner_spec.rb +11 -0
  217. data/spec/spec/spec_classes.rb +12 -5
  218. data/spec/spec/story/builders.rb +46 -0
  219. data/spec/spec/story/extensions/main_spec.rb +161 -0
  220. data/spec/spec/story/extensions_spec.rb +14 -0
  221. data/spec/spec/story/given_scenario_spec.rb +27 -0
  222. data/spec/spec/story/runner/plain_text_story_runner_spec.rb +92 -0
  223. data/spec/spec/story/runner/scenario_collector_spec.rb +27 -0
  224. data/spec/spec/story/runner/scenario_runner_spec.rb +142 -0
  225. data/spec/spec/story/runner/story_mediator_spec.rb +133 -0
  226. data/spec/spec/story/runner/story_parser_spec.rb +384 -0
  227. data/spec/spec/story/runner/story_runner_spec.rb +219 -0
  228. data/spec/spec/story/runner_spec.rb +106 -0
  229. data/spec/spec/story/scenario_spec.rb +20 -0
  230. data/spec/spec/story/step_group_spec.rb +157 -0
  231. data/spec/spec/story/step_mother_spec.rb +72 -0
  232. data/spec/spec/story/step_spec.rb +147 -0
  233. data/spec/spec/story/story_helper.rb +2 -0
  234. data/spec/spec/story/story_spec.rb +86 -0
  235. data/spec/spec/story/world_spec.rb +416 -0
  236. data/spec/spec/translator_spec.rb +2 -1
  237. data/spec/spec_helper.rb +59 -2
  238. data/stories/all.rb +5 -0
  239. data/stories/example_groups/autogenerated_docstrings +26 -0
  240. data/stories/example_groups/example_group_with_should_methods +17 -0
  241. data/stories/example_groups/nested_groups +17 -0
  242. data/stories/example_groups/output +20 -0
  243. data/stories/example_groups/stories.rb +7 -0
  244. data/stories/helper.rb +6 -0
  245. data/stories/interop/examples_and_tests_together +30 -0
  246. data/stories/interop/stories.rb +7 -0
  247. data/stories/interop/test_case_with_should_methods +17 -0
  248. data/stories/pending_stories/README +3 -0
  249. data/stories/resources/helpers/cmdline.rb +9 -0
  250. data/stories/resources/helpers/story_helper.rb +16 -0
  251. data/stories/resources/matchers/smart_match.rb +37 -0
  252. data/stories/resources/spec/example_group_with_should_methods.rb +12 -0
  253. data/stories/resources/spec/simple_spec.rb +8 -0
  254. data/stories/resources/steps/running_rspec.rb +50 -0
  255. data/stories/resources/test/spec_and_test_together.rb +57 -0
  256. data/stories/resources/test/test_case_with_should_methods.rb +30 -0
  257. metadata +232 -106
  258. data/EXAMPLES.rd +0 -111
  259. data/examples/multi_threaded_behaviour_runner.rb +0 -25
  260. data/examples/shared_behaviours_example.rb +0 -39
  261. data/examples/spec_helper.rb +0 -1
  262. data/examples/test_case_adapter_example.rb +0 -26
  263. data/examples/test_case_spec.rb +0 -65
  264. data/lib/spec/dsl.rb +0 -11
  265. data/lib/spec/dsl/behaviour.rb +0 -220
  266. data/lib/spec/dsl/behaviour_callbacks.rb +0 -82
  267. data/lib/spec/dsl/behaviour_eval.rb +0 -231
  268. data/lib/spec/dsl/behaviour_factory.rb +0 -42
  269. data/lib/spec/dsl/composite_proc_builder.rb +0 -33
  270. data/lib/spec/dsl/description.rb +0 -76
  271. data/lib/spec/dsl/example.rb +0 -135
  272. data/lib/spec/dsl/example_matcher.rb +0 -40
  273. data/lib/spec/dsl/example_should_raise_handler.rb +0 -74
  274. data/lib/spec/runner/behaviour_runner.rb +0 -123
  275. data/lib/spec/runner/extensions/kernel.rb +0 -50
  276. data/lib/spec/runner/extensions/object.rb +0 -32
  277. data/lib/spec/runner/formatter.rb +0 -9
  278. data/lib/spec/runner/formatter/failing_behaviours_formatter.rb +0 -29
  279. data/lib/spec/runner/formatter/rdoc_formatter.rb +0 -24
  280. data/lib/spec/test_case_adapter.rb +0 -10
  281. data/spec/spec/dsl/behaviour_eval_spec.rb +0 -79
  282. data/spec/spec/dsl/behaviour_factory_spec.rb +0 -48
  283. data/spec/spec/dsl/behaviour_spec.rb +0 -661
  284. data/spec/spec/dsl/composite_proc_builder_spec.rb +0 -44
  285. data/spec/spec/dsl/configuration_spec.rb +0 -55
  286. data/spec/spec/dsl/description_spec.rb +0 -89
  287. data/spec/spec/dsl/example_class_spec.rb +0 -24
  288. data/spec/spec/dsl/example_instance_spec.rb +0 -160
  289. data/spec/spec/dsl/example_should_raise_spec.rb +0 -137
  290. data/spec/spec/dsl/shared_behaviour_spec.rb +0 -252
  291. data/spec/spec/runner/behaviour_runner_spec.rb +0 -229
  292. data/spec/spec/runner/context_matching_spec.rb +0 -27
  293. data/spec/spec/runner/extensions/bug_report_10577_spec.rb +0 -35
  294. data/spec/spec/runner/extensions/kernel_spec.rb +0 -36
  295. data/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +0 -40
  296. data/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +0 -20
  297. data/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +0 -36
  298. data/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +0 -19
  299. data/spec/spec/runner/formatter/rdoc_formatter_spec.rb +0 -46
  300. data/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +0 -21
  301. data/spec/spec/runner/object_ext_spec.rb +0 -11
@@ -1,44 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
2
-
3
- module Spec
4
- module DSL
5
- describe CompositeProcBuilder do
6
- before(:each) do
7
- @klass = Class.new do
8
- attr_reader :an_attribute
9
-
10
- def an_attribute_setter
11
- @an_attribute = :the_value
12
- end
13
- end
14
-
15
- @parent = @klass.new
16
- @builder = CompositeProcBuilder.new {}
17
- end
18
-
19
- it "calls all of its child procs" do
20
- @builder << proc {:proc1}
21
- @builder << proc {:proc2}
22
- @builder.proc.call.should == [:proc1, :proc2]
23
- end
24
-
25
- it "evals procs in the caller's instance" do
26
- the_proc = proc do
27
- @an_attribute = :the_value
28
- end
29
- the_proc.class.should == Proc
30
- @builder << the_proc
31
- @parent.instance_eval &@builder.proc
32
- @parent.an_attribute.should == :the_value
33
- end
34
-
35
- it "binds unbound methods to the parent" do
36
- unbound_method = @klass.instance_method(:an_attribute_setter)
37
- unbound_method.class.should == UnboundMethod
38
- @builder << unbound_method
39
- @parent.instance_eval &@builder.proc
40
- @parent.an_attribute.should == :the_value
41
- end
42
- end
43
- end
44
- end
@@ -1,55 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
-
3
- module Spec
4
- module DSL
5
- describe Configuration do
6
- before(:each) do
7
- @config = Configuration.new
8
- @behaviour = mock("behaviour")
9
- end
10
-
11
- it "should default mock framework to rspec" do
12
- @config.mock_framework.should =~ /\/plugins\/mock_frameworks\/rspec$/
13
- end
14
-
15
- it "should let you set rspec mocking explicitly" do
16
- @config.mock_with(:rspec)
17
- @config.mock_framework.should =~ /\/plugins\/mock_frameworks\/rspec$/
18
- end
19
-
20
- it "should let you set mocha" do
21
- @config.mock_with(:mocha)
22
- @config.mock_framework.should =~ /\/plugins\/mock_frameworks\/mocha$/
23
- end
24
-
25
- it "should let you set flexmock" do
26
- @config.mock_with(:flexmock)
27
- @config.mock_framework.should =~ /\/plugins\/mock_frameworks\/flexmock$/
28
- end
29
-
30
- it "should let you set rr" do
31
- @config.mock_with(:rr)
32
- @config.mock_framework.should =~ /\/plugins\/mock_frameworks\/rr$/
33
- end
34
-
35
- it "should let you set an arbitrary adapter module" do
36
- adapter = Module.new
37
- @config.mock_with(adapter)
38
- @config.mock_framework.should == adapter
39
- end
40
-
41
- it "should let you define modules to be included" do
42
- mod = Module.new
43
- @config.include mod
44
- @config.modules_for(nil).should include(mod)
45
- end
46
-
47
- [:prepend_before, :append_before, :prepend_after, :append_after].each do |m|
48
- it "should delegate ##{m} to Behaviour class" do
49
- Behaviour.should_receive(m).with(:whatever)
50
- @config.__send__(m, :whatever)
51
- end
52
- end
53
- end
54
- end
55
- end
@@ -1,89 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
2
-
3
- module Spec
4
- module DSL
5
- describe Description, " constructed with a single String" do
6
- before(:each) {@description = Description.new("abc")}
7
-
8
- it "should provide that string as its name" do
9
- @description.description.should == "abc"
10
- end
11
- it "should provide nil as its type" do
12
- @description.described_type.should be_nil
13
- end
14
- it "should respond to []" do
15
- @description[:key].should be_nil
16
- end
17
- it "should respond to []=" do
18
- @description[:key] = :value
19
- @description[:key].should == :value
20
- end
21
- it "should return for == when value matches description" do
22
- @description.should == "abc"
23
- end
24
- it "should return for == when value is other description that matches description" do
25
- @description.should == Description.new("abc")
26
- end
27
- end
28
-
29
- describe Description, " constructed with a Type" do
30
- before(:each) {@description = Description.new(Behaviour)}
31
-
32
- it "should provide a String representation of that type (fully qualified) as its name" do
33
- @description.description.should == "Spec::DSL::Behaviour"
34
- end
35
- it "should provide that type (fully qualified) as its type" do
36
- @description.described_type.should == Spec::DSL::Behaviour
37
- end
38
- end
39
-
40
- describe Description, " constructed with a Type and a String" do
41
- before(:each) {@description = Description.new(Behaviour, " behaving")}
42
-
43
- it "should include the type and second String in its name" do
44
- @description.description.should == "Spec::DSL::Behaviour behaving"
45
- end
46
- it "should provide that type (fully qualified) as its type" do
47
- @description.described_type.should == Spec::DSL::Behaviour
48
- end
49
- end
50
-
51
- describe Description, "constructed with a Type and a String not starting with a space" do
52
- before(:each) {@description = Description.new(Behaviour, "behaving")}
53
-
54
- it "should include the type and second String with a space in its name" do
55
- @description.description.should == "Spec::DSL::Behaviour behaving"
56
- end
57
- end
58
-
59
- describe Description, "constructed with a Type and a String starting with a ." do
60
- before(:each) {@description = Description.new(Behaviour, ".behaving")}
61
-
62
- it "should include the type and second String with a space in its name" do
63
- @description.description.should == "Spec::DSL::Behaviour.behaving"
64
- end
65
- end
66
-
67
- describe Description, "constructed with a Type and a String starting with a #" do
68
- before(:each) {@description = Description.new(Behaviour, "#behaving")}
69
-
70
- it "should include the type and second String with a space in its name" do
71
- @description.description.should == "Spec::DSL::Behaviour#behaving"
72
- end
73
- end
74
-
75
- describe Description, " constructed with options" do
76
- before(:each) do
77
- @description = Description.new(Behaviour, :a => "b", :spec_path => "blah")
78
- end
79
-
80
- it "should provide its options" do
81
- @description[:a].should == "b"
82
- end
83
-
84
- it "should wrap spec path using File.expand_path" do
85
- @description[:spec_path].should == File.expand_path("blah")
86
- end
87
- end
88
- end
89
- end
@@ -1,24 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
-
3
- module Spec
4
- module DSL
5
- describe Example, " class" do
6
-
7
- def run(example)
8
- example.run(@reporter, nil, nil, nil, Object.new)
9
- end
10
-
11
- before do
12
- @reporter = stub("reporter", :example_started => nil, :example_finished => nil)
13
- @example_class = Example.dup
14
- end
15
-
16
- it "should report errors in example" do
17
- error = Exception.new
18
- example = @example_class.new("example") {raise(error)}
19
- @reporter.should_receive(:example_finished).with(equal(example), error, "example", false)
20
- run(example)
21
- end
22
- end
23
- end
24
- end
@@ -1,160 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
-
3
- module Spec
4
- module DSL
5
- describe Example, " instance" do
6
- predicate_matchers[:is_a] = [:is_a?]
7
-
8
- before(:each) do
9
- @reporter = stub("reporter", :example_started => nil, :example_finished => nil)
10
- end
11
-
12
- it "should send reporter example_started" do
13
- example=Example.new("example") {}
14
- @reporter.should_receive(:example_started).with(equal(example))
15
- example.run(@reporter, nil, nil, false, nil)
16
- end
17
-
18
- it "should report its name for dry run" do
19
- example=Example.new("example") {}
20
- @reporter.should_receive(:example_finished).with(equal(example))
21
- example.run(@reporter, nil, nil, true, nil) #4th arg indicates dry run
22
- end
23
-
24
- it "should report success" do
25
- example=Example.new("example") {}
26
- @reporter.should_receive(:example_finished).with(equal(example), nil, nil, false)
27
- example.run(@reporter, nil, nil, nil, nil)
28
- end
29
-
30
- it "should report failure due to failure" do
31
- example=Example.new("example") do
32
- (2+2).should == 5
33
- end
34
- @reporter.should_receive(:example_finished).with(equal(example), is_a(Spec::Expectations::ExpectationNotMetError), "example", false)
35
- example.run(@reporter, nil, nil, nil, nil)
36
- end
37
-
38
- it "should report failure due to error" do
39
- error=NonStandardError.new
40
- example=Example.new("example") do
41
- raise(error)
42
- end
43
- @reporter.should_receive(:example_finished).with(equal(example), error, "example", false)
44
- example.run(@reporter, nil, nil, nil, nil)
45
- end
46
-
47
- it "should run example in scope of supplied object" do
48
- scope_class = Class.new
49
- example=Example.new("should pass") do
50
- self.instance_of?(Example).should == false
51
- self.instance_of?(scope_class).should == true
52
- end
53
- @reporter.should_receive(:example_finished).with(equal(example), nil, nil, false)
54
- example.run(@reporter, nil, nil, nil, scope_class.new)
55
- end
56
-
57
- it "should not run example block if before_each fails" do
58
- example_ran = false
59
- example=Example.new("should pass") {example_ran = true}
60
- before_each = lambda {raise NonStandardError}
61
- example.run(@reporter, before_each, nil, nil, Object.new)
62
- example_ran.should == false
63
- end
64
-
65
- it "should run after_each block if before_each fails" do
66
- after_each_ran = false
67
- example=Example.new("should pass") {}
68
- before_each = lambda {raise NonStandardError}
69
- after_each = lambda {after_each_ran = true}
70
- example.run(@reporter, before_each, after_each, nil, Object.new)
71
- after_each_ran.should == true
72
- end
73
-
74
- it "should run after_each block when example fails" do
75
- example=Example.new("example") do
76
- raise(NonStandardError.new("in body"))
77
- end
78
- after_each=lambda do
79
- raise("in after_each")
80
- end
81
- @reporter.should_receive(:example_finished) do |example, error, location|
82
- example.should equal(example)
83
- location.should eql("example")
84
- error.message.should eql("in body")
85
- end
86
- example.run(@reporter, nil, after_each, nil, nil)
87
- end
88
-
89
- it "should report failure location when in before_each" do
90
- example=Example.new("example") {}
91
- before_each=lambda { raise(NonStandardError.new("in before_each")) }
92
- @reporter.should_receive(:example_finished) do |name, error, location|
93
- name.should equal(example)
94
- error.message.should eql("in before_each")
95
- location.should eql("before(:each)")
96
- end
97
- example.run(@reporter, before_each, nil, nil, nil)
98
- end
99
-
100
- it "should report failure location when in after_each" do
101
- example = Example.new("example") {}
102
- after_each = lambda { raise(NonStandardError.new("in after_each")) }
103
- @reporter.should_receive(:example_finished) do |name, error, location|
104
- name.should equal(example)
105
- error.message.should eql("in after_each")
106
- location.should eql("after(:each)")
107
- end
108
- example.run(@reporter, nil, after_each, nil, nil)
109
- end
110
-
111
- it "should accept an options hash following the example name" do
112
- example = Example.new("name", :key => 'value')
113
- end
114
-
115
- it "should report NO NAME when told to use generated description with --dry-run" do
116
- example = Example.new(:__generate_description) {
117
- 5.should == 5
118
- }
119
- @reporter.should_receive(:example_finished) do |example, error, location|
120
- example.description.should == "NO NAME (Because of --dry-run)"
121
- end
122
- example.run(@reporter, lambda{}, lambda{}, true, Object.new)
123
- end
124
-
125
- it "should report NO NAME when told to use generated description with no expectations" do
126
- example = Example.new(:__generate_description) {}
127
- @reporter.should_receive(:example_finished) do |example, error, location|
128
- example.description.should == "NO NAME (Because there were no expectations)"
129
- end
130
- example.run(@reporter, lambda{}, lambda{}, false, Object.new)
131
- end
132
-
133
- it "should report NO NAME when told to use generated description and matcher fails" do
134
- example = Example.new(:__generate_description) do
135
- 5.should "" # Has no matches? method..
136
- end
137
- @reporter.should_receive(:example_finished) do |example, error, location|
138
- example.description.should == "NO NAME (Because of Error raised in matcher)"
139
- end
140
- example.run(@reporter, nil, nil, nil, Object.new)
141
- end
142
-
143
- it "should report generated description when told to and it is available" do
144
- example = Example.new(:__generate_description) {
145
- 5.should == 5
146
- }
147
- @reporter.should_receive(:example_finished) do |example, error, location|
148
- example.description.should == "should == 5"
149
- end
150
- example.run(@reporter, nil, nil, nil, Object.new)
151
- end
152
-
153
- it "should unregister description_generated callback (lest a memory leak should build up)" do
154
- example = Example.new("something")
155
- Spec::Matchers.should_receive(:unregister_description_generated).with(is_a(Proc))
156
- example.run(@reporter, nil, nil, nil, Object.new)
157
- end
158
- end
159
- end
160
- end
@@ -1,137 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
-
3
- module Spec
4
- module DSL
5
- describe Example, " declared with {:should_raise => ...}" do
6
- before(:each) do
7
- @reporter = mock("reporter")
8
- @reporter.stub!(:example_started)
9
- end
10
-
11
- def verify_error(error, message=nil)
12
- error.should be_an_instance_of(Spec::Expectations::ExpectationNotMetError)
13
- unless message.nil?
14
- return error.message.should =~ message if Regexp === message
15
- return error.message.should == message
16
- end
17
- end
18
-
19
- it "true} should pass when there is an ExpectationNotMetError" do
20
- example = Spec::DSL:: Example.new("example", :should_raise => true) do
21
- raise Spec::Expectations::ExpectationNotMetError
22
- end
23
- @reporter.should_receive(:example_finished) do |description, error|
24
- error.should be_nil
25
- end
26
- example.run(@reporter, nil, nil, nil, nil)
27
- end
28
-
29
- it "true} should fail if nothing is raised" do
30
- example = Spec::DSL:: Example.new("example", :should_raise => true) {}
31
- @reporter.should_receive(:example_finished) do |example_name, error|
32
- verify_error(error, /example block expected Exception but nothing was raised/)
33
- end
34
- example.run(@reporter, nil, nil, nil, nil)
35
- end
36
-
37
- it "NameError} should pass when there is a NameError" do
38
- example = Spec::DSL:: Example.new("example", :should_raise => NameError) do
39
- raise NameError
40
- end
41
- @reporter.should_receive(:example_finished) do |example_name, error|
42
- error.should be_nil
43
- end
44
- example.run(@reporter, nil, nil, nil, nil)
45
- end
46
-
47
- it "NameError} should fail when there is no error" do
48
- example = Spec::DSL:: Example.new("example", :should_raise => NameError) do
49
- #do nothing
50
- end
51
- @reporter.should_receive(:example_finished) do |example_name, error|
52
- verify_error(error,/example block expected NameError but nothing was raised/)
53
- end
54
- example.run(@reporter, nil, nil, nil, nil)
55
- end
56
-
57
- it "NameError} should fail when there is the wrong error" do
58
- example = Spec::DSL:: Example.new("example", :should_raise => NameError) do
59
- raise RuntimeError
60
- end
61
- @reporter.should_receive(:example_finished) do |example_name, error|
62
- verify_error(error, /example block expected NameError but raised.+RuntimeError/)
63
- end
64
- example.run(@reporter, nil, nil, nil, nil)
65
- end
66
-
67
- it "[NameError]} should pass when there is a NameError" do
68
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError]) do
69
- raise NameError
70
- end
71
- @reporter.should_receive(:example_finished) do |description, error|
72
- error.should be_nil
73
- end
74
- example.run(@reporter, nil, nil, nil, nil)
75
- end
76
-
77
- it "[NameError]} should fail when there is no error" do
78
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError]) do
79
- end
80
- @reporter.should_receive(:example_finished) do |description, error|
81
- verify_error(error, /example block expected NameError but nothing was raised/)
82
- end
83
- example.run(@reporter, nil, nil, nil, nil)
84
- end
85
-
86
- it "[NameError]} should fail when there is the wrong error" do
87
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError]) do
88
- raise RuntimeError
89
- end
90
- @reporter.should_receive(:example_finished) do |description, error|
91
- verify_error(error, /example block expected NameError but raised.+RuntimeError/)
92
- end
93
- example.run(@reporter, nil, nil, nil, nil)
94
- end
95
-
96
- it "[NameError, 'message'} should pass when there is a NameError with the right message" do
97
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, 'expected']) do
98
- raise NameError, 'expected'
99
- end
100
- @reporter.should_receive(:example_finished) do |description, error|
101
- error.should be_nil
102
- end
103
- example.run(@reporter, nil, nil, nil, nil)
104
- end
105
-
106
- it "[NameError, 'message'} should pass when there is a NameError with a message matching a regex" do
107
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, /xpec/]) do
108
- raise NameError, 'expected'
109
- end
110
- @reporter.should_receive(:example_finished) do |description, error|
111
- error.should be_nil
112
- end
113
- example.run(@reporter, nil, nil, nil, nil)
114
- end
115
-
116
- it "[NameError, 'message'} should fail when there is a NameError with the wrong message" do
117
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, 'expected']) do
118
- raise NameError, 'wrong message'
119
- end
120
- @reporter.should_receive(:example_finished) do |description, error|
121
- verify_error(error, /example block expected #<NameError: expected> but raised #<NameError: wrong message>/)
122
- end
123
- example.run(@reporter, nil, nil, nil, nil)
124
- end
125
-
126
- it "[NameError, 'message'} should fail when there is a NameError with a message not matching regexp" do
127
- example = Spec::DSL:: Example.new("spec", :should_raise => [NameError, /exp/]) do
128
- raise NameError, 'wrong message'
129
- end
130
- @reporter.should_receive(:example_finished) do |description, error|
131
- verify_error(error, /example block expected #<NameError: \(\?-mix:exp\)> but raised #<NameError: wrong message>/)
132
- end
133
- example.run(@reporter, nil, nil, nil, nil)
134
- end
135
- end
136
- end
137
- end