rspec 0.8.2 → 0.9.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 (245) hide show
  1. data/CHANGES +125 -9
  2. data/EXAMPLES.rd +50 -27
  3. data/README +14 -1
  4. data/Rakefile +95 -42
  5. data/UPGRADE +31 -0
  6. data/bin/spec +0 -1
  7. data/bin/spec_translator +6 -0
  8. data/examples/auto_spec_description_example.rb +19 -0
  9. data/examples/{setup_teardown_example.rb → before_and_after_example.rb} +6 -6
  10. data/examples/behave_as_example.rb +45 -0
  11. data/examples/custom_expectation_matchers.rb +13 -12
  12. data/examples/dynamic_spec.rb +2 -2
  13. data/examples/file_accessor_spec.rb +2 -2
  14. data/examples/greeter_spec.rb +3 -3
  15. data/examples/helper_method_example.rb +2 -2
  16. data/examples/io_processor_spec.rb +4 -4
  17. data/examples/legacy_spec.rb +10 -0
  18. data/examples/mocking_example.rb +5 -5
  19. data/examples/multi_threaded_behaviour_runner.rb +25 -0
  20. data/examples/partial_mock_example.rb +4 -4
  21. data/examples/predicate_example.rb +4 -4
  22. data/examples/priority.txt +1 -0
  23. data/examples/shared_behaviours_example.rb +31 -0
  24. data/examples/stack_spec.rb +52 -69
  25. data/examples/stubbing_example.rb +10 -10
  26. data/examples/test_case_adapter_example.rb +26 -0
  27. data/examples/test_case_spec.rb +6 -6
  28. data/lib/spec.rb +9 -4
  29. data/lib/spec/dsl.rb +10 -0
  30. data/lib/spec/dsl/behaviour.rb +189 -0
  31. data/lib/spec/dsl/behaviour_callbacks.rb +43 -0
  32. data/lib/spec/dsl/behaviour_eval.rb +170 -0
  33. data/lib/spec/dsl/behaviour_factory.rb +32 -0
  34. data/lib/spec/dsl/composite_proc_builder.rb +28 -0
  35. data/lib/spec/dsl/configuration.rb +38 -0
  36. data/lib/spec/dsl/description.rb +34 -0
  37. data/lib/spec/dsl/example.rb +114 -0
  38. data/lib/spec/dsl/example_matcher.rb +28 -0
  39. data/lib/spec/{runner/spec_should_raise_handler.rb → dsl/example_should_raise_handler.rb} +4 -4
  40. data/lib/spec/expectations.rb +0 -3
  41. data/lib/spec/expectations/differs/default.rb +0 -1
  42. data/lib/spec/expectations/extensions.rb +0 -1
  43. data/lib/spec/expectations/extensions/object.rb +10 -53
  44. data/lib/spec/expectations/handler.rb +14 -18
  45. data/lib/spec/extensions.rb +1 -0
  46. data/lib/spec/extensions/object.rb +6 -0
  47. data/lib/spec/matchers.rb +19 -21
  48. data/lib/spec/matchers/be.rb +40 -11
  49. data/lib/spec/matchers/be_close.rb +2 -2
  50. data/lib/spec/matchers/operator_matcher.rb +52 -0
  51. data/lib/spec/matchers/respond_to.rb +21 -11
  52. data/lib/spec/mocks.rb +5 -28
  53. data/lib/spec/mocks/argument_constraint_matchers.rb +12 -0
  54. data/lib/spec/mocks/argument_expectation.rb +7 -4
  55. data/lib/spec/mocks/methods.rb +11 -16
  56. data/lib/spec/mocks/mock.rb +6 -3
  57. data/lib/spec/mocks/{mock_handler.rb → proxy.rb} +4 -7
  58. data/lib/spec/mocks/space.rb +28 -0
  59. data/lib/spec/mocks/spec_methods.rb +30 -0
  60. data/lib/spec/rake/spectask.rb +23 -21
  61. data/lib/spec/rake/verify_rcov.rb +1 -0
  62. data/lib/spec/runner.rb +88 -35
  63. data/lib/spec/runner/backtrace_tweaker.rb +2 -1
  64. data/lib/spec/runner/behaviour_runner.rb +102 -0
  65. data/lib/spec/runner/command_line.rb +5 -17
  66. data/lib/spec/runner/drb_command_line.rb +2 -2
  67. data/lib/spec/runner/extensions/kernel.rb +22 -9
  68. data/lib/spec/runner/formatter.rb +4 -0
  69. data/lib/spec/runner/formatter/base_formatter.rb +63 -0
  70. data/lib/spec/runner/formatter/base_text_formatter.rb +22 -52
  71. data/lib/spec/runner/formatter/failing_behaviours_formatter.rb +25 -0
  72. data/lib/spec/runner/formatter/failing_examples_formatter.rb +22 -0
  73. data/lib/spec/runner/formatter/html_formatter.rb +74 -29
  74. data/lib/spec/runner/formatter/progress_bar_formatter.rb +6 -8
  75. data/lib/spec/runner/formatter/rdoc_formatter.rb +6 -6
  76. data/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  77. data/lib/spec/runner/formatter/specdoc_formatter.rb +6 -6
  78. data/lib/spec/runner/heckle_runner.rb +8 -7
  79. data/lib/spec/runner/option_parser.rb +136 -55
  80. data/lib/spec/runner/options.rb +26 -0
  81. data/lib/spec/runner/reporter.rb +38 -31
  82. data/lib/spec/runner/spec_parser.rb +22 -13
  83. data/lib/spec/test_case_adapter.rb +10 -0
  84. data/lib/spec/translator.rb +103 -86
  85. data/lib/spec/version.rb +7 -15
  86. data/plugins/mock_frameworks/flexmock.rb +27 -0
  87. data/plugins/mock_frameworks/mocha.rb +21 -0
  88. data/plugins/mock_frameworks/rspec.rb +18 -0
  89. data/spec/spec/dsl/behaviour_eval_spec.rb +49 -0
  90. data/spec/spec/dsl/behaviour_factory_spec.rb +30 -0
  91. data/spec/spec/dsl/behaviour_spec.rb +508 -0
  92. data/spec/spec/dsl/composite_proc_builder_spec.rb +57 -0
  93. data/spec/spec/dsl/configuration_spec.rb +43 -0
  94. data/spec/spec/dsl/description_spec.rb +51 -0
  95. data/spec/spec/dsl/example_class_spec.rb +24 -0
  96. data/spec/spec/dsl/example_instance_spec.rb +140 -0
  97. data/spec/spec/dsl/example_should_raise_spec.rb +137 -0
  98. data/spec/spec/dsl/predicate_matcher_spec.rb +21 -0
  99. data/spec/spec/dsl/shared_behaviour_spec.rb +186 -0
  100. data/spec/spec/expectations/differs/default_spec.rb +12 -12
  101. data/spec/spec/expectations/extensions/object_spec.rb +10 -10
  102. data/spec/spec/expectations/fail_with_spec.rb +20 -20
  103. data/spec/spec/matchers/be_close_spec.rb +37 -31
  104. data/spec/spec/matchers/be_spec.rb +50 -41
  105. data/spec/spec/matchers/change_spec.rb +54 -54
  106. data/spec/spec/matchers/description_generation_spec.rb +43 -31
  107. data/spec/spec/matchers/eql_spec.rb +24 -37
  108. data/spec/spec/matchers/equal_spec.rb +24 -37
  109. data/spec/spec/matchers/exist_spec.rb +48 -0
  110. data/spec/spec/matchers/handler_spec.rb +36 -23
  111. data/spec/spec/matchers/has_spec.rb +8 -8
  112. data/spec/spec/matchers/have_spec.rb +38 -38
  113. data/spec/spec/matchers/include_spec.rb +6 -6
  114. data/spec/spec/matchers/match_spec.rb +8 -8
  115. data/spec/spec/matchers/matcher_methods_spec.rb +24 -31
  116. data/spec/spec/matchers/raise_error_spec.rb +34 -34
  117. data/spec/spec/matchers/respond_to_spec.rb +32 -8
  118. data/spec/spec/matchers/satisfy_spec.rb +6 -6
  119. data/spec/spec/matchers/should_===_spec.rb +38 -0
  120. data/spec/spec/matchers/should_==_spec.rb +37 -0
  121. data/spec/spec/matchers/should_=~_spec.rb +36 -0
  122. data/spec/spec/matchers/throw_symbol_spec.rb +47 -55
  123. data/spec/spec/mocks/any_number_of_times_spec.rb +16 -21
  124. data/spec/spec/mocks/argument_expectation_spec.rb +3 -3
  125. data/spec/spec/mocks/at_least_spec.rb +30 -30
  126. data/spec/spec/mocks/at_most_spec.rb +53 -57
  127. data/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  128. data/spec/spec/mocks/bug_report_7611_spec.rb +3 -3
  129. data/spec/spec/mocks/bug_report_7805_spec.rb +3 -3
  130. data/spec/spec/mocks/bug_report_8165_spec.rb +5 -5
  131. data/spec/spec/mocks/bug_report_8302_spec.rb +5 -5
  132. data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +26 -27
  133. data/spec/spec/mocks/mock_ordering_spec.rb +19 -15
  134. data/spec/spec/mocks/mock_space_spec.rb +54 -0
  135. data/spec/spec/mocks/mock_spec.rb +111 -141
  136. data/spec/spec/mocks/multiple_return_value_spec.rb +48 -48
  137. data/spec/spec/mocks/null_object_mock_spec.rb +10 -10
  138. data/spec/spec/mocks/once_counts_spec.rb +32 -35
  139. data/spec/spec/mocks/options_hash_spec.rb +12 -10
  140. data/spec/spec/mocks/partial_mock_spec.rb +15 -15
  141. data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +24 -22
  142. data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +19 -19
  143. data/spec/spec/mocks/precise_counts_spec.rb +28 -32
  144. data/spec/spec/mocks/record_messages_spec.rb +10 -10
  145. data/spec/spec/mocks/stub_spec.rb +45 -45
  146. data/spec/spec/mocks/twice_counts_spec.rb +21 -21
  147. data/spec/spec/package/bin_spec_spec.rb +12 -0
  148. data/spec/spec/runner/behaviour_runner_spec.rb +114 -0
  149. data/spec/spec/runner/command_line_spec.rb +8 -8
  150. data/spec/spec/runner/context_matching_spec.rb +14 -15
  151. data/spec/spec/runner/drb_command_line_spec.rb +12 -12
  152. data/spec/spec/runner/execution_context_spec.rb +8 -29
  153. data/spec/spec/runner/extensions/kernel_spec.rb +36 -0
  154. data/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +27 -0
  155. data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +28 -0
  156. data/spec/spec/runner/formatter/html_formatter_spec.rb +9 -8
  157. data/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +6 -6
  158. data/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +10 -10
  159. data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +22 -27
  160. data/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +6 -5
  161. data/spec/spec/runner/formatter/rdoc_formatter_spec.rb +17 -17
  162. data/spec/spec/runner/formatter/snippet_extractor_spec.rb +11 -0
  163. data/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +6 -6
  164. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +17 -17
  165. data/spec/spec/runner/heckle_runner_spec.rb +21 -21
  166. data/spec/spec/runner/heckler_spec.rb +5 -5
  167. data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +12 -12
  168. data/spec/spec/runner/object_ext_spec.rb +3 -3
  169. data/spec/spec/runner/option_parser_spec.rb +171 -102
  170. data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +21 -12
  171. data/spec/spec/runner/reporter_spec.rb +106 -97
  172. data/spec/spec/runner/spec_matcher_spec.rb +46 -51
  173. data/spec/spec/runner/spec_parser_spec.rb +72 -16
  174. data/spec/spec/spec_classes.rb +12 -3
  175. data/spec/spec/translator_spec.rb +165 -36
  176. metadata +66 -76
  177. data/RELEASE-PLAN +0 -117
  178. data/examples/auto_spec_name_generation_example.rb +0 -18
  179. data/lib/spec/callback.rb +0 -11
  180. data/lib/spec/callback/callback_container.rb +0 -60
  181. data/lib/spec/callback/extensions/module.rb +0 -24
  182. data/lib/spec/callback/extensions/object.rb +0 -37
  183. data/lib/spec/deprecated.rb +0 -3
  184. data/lib/spec/expectations/extensions/proc.rb +0 -57
  185. data/lib/spec/expectations/should.rb +0 -5
  186. data/lib/spec/expectations/should/base.rb +0 -64
  187. data/lib/spec/expectations/should/change.rb +0 -69
  188. data/lib/spec/expectations/should/have.rb +0 -128
  189. data/lib/spec/expectations/should/not.rb +0 -74
  190. data/lib/spec/expectations/should/should.rb +0 -81
  191. data/lib/spec/expectations/sugar.rb +0 -47
  192. data/lib/spec/runner/context.rb +0 -154
  193. data/lib/spec/runner/context_eval.rb +0 -142
  194. data/lib/spec/runner/context_runner.rb +0 -55
  195. data/lib/spec/runner/execution_context.rb +0 -17
  196. data/lib/spec/runner/spec_matcher.rb +0 -25
  197. data/lib/spec/runner/specification.rb +0 -114
  198. data/spec/spec/callback/callback_container_spec.rb +0 -27
  199. data/spec/spec/callback/module_spec.rb +0 -37
  200. data/spec/spec/callback/object_spec.rb +0 -90
  201. data/spec/spec/callback/object_with_class_callback_spec.rb +0 -19
  202. data/spec/spec/expectations/should/should_==_spec.rb +0 -19
  203. data/spec/spec/expectations/should/should_=~_spec.rb +0 -13
  204. data/spec/spec/expectations/should/should_be_a_kind_of_spec.rb +0 -21
  205. data/spec/spec/expectations/should/should_be_an_instance_of_spec.rb +0 -30
  206. data/spec/spec/expectations/should/should_be_arbitrary_predicate_spec.rb +0 -81
  207. data/spec/spec/expectations/should/should_be_close_spec.rb +0 -18
  208. data/spec/spec/expectations/should/should_be_comparison_operator_spec.rb +0 -44
  209. data/spec/spec/expectations/should/should_be_false_spec.rb +0 -39
  210. data/spec/spec/expectations/should/should_be_spec.rb +0 -11
  211. data/spec/spec/expectations/should/should_be_true_spec.rb +0 -27
  212. data/spec/spec/expectations/should/should_change_spec.rb +0 -184
  213. data/spec/spec/expectations/should/should_eql_spec.rb +0 -11
  214. data/spec/spec/expectations/should/should_equal_spec.rb +0 -11
  215. data/spec/spec/expectations/should/should_have_at_least_spec.rb +0 -53
  216. data/spec/spec/expectations/should/should_have_at_most_spec.rb +0 -45
  217. data/spec/spec/expectations/should/should_have_key_spec.rb +0 -21
  218. data/spec/spec/expectations/should/should_have_spec.rb +0 -64
  219. data/spec/spec/expectations/should/should_include_spec.rb +0 -59
  220. data/spec/spec/expectations/should/should_match_spec.rb +0 -25
  221. data/spec/spec/expectations/should/should_not_==_spec.rb +0 -15
  222. data/spec/spec/expectations/should/should_not_be_a_kind_of_spec.rb +0 -21
  223. data/spec/spec/expectations/should/should_not_be_an_instance_of_spec.rb +0 -11
  224. data/spec/spec/expectations/should/should_not_be_arbitrary_predicate_spec.rb +0 -68
  225. data/spec/spec/expectations/should/should_not_be_spec.rb +0 -11
  226. data/spec/spec/expectations/should/should_not_change_spec.rb +0 -24
  227. data/spec/spec/expectations/should/should_not_eql_spec.rb +0 -11
  228. data/spec/spec/expectations/should/should_not_equal_spec.rb +0 -11
  229. data/spec/spec/expectations/should/should_not_have_key_spec.rb +0 -15
  230. data/spec/spec/expectations/should/should_not_include_spec.rb +0 -58
  231. data/spec/spec/expectations/should/should_not_match_spec.rb +0 -11
  232. data/spec/spec/expectations/should/should_not_raise_spec.rb +0 -75
  233. data/spec/spec/expectations/should/should_not_respond_to_spec.rb +0 -15
  234. data/spec/spec/expectations/should/should_not_throw_spec.rb +0 -35
  235. data/spec/spec/expectations/should/should_raise_spec.rb +0 -66
  236. data/spec/spec/expectations/should/should_respond_to_spec.rb +0 -15
  237. data/spec/spec/expectations/should/should_satisfy_spec.rb +0 -35
  238. data/spec/spec/expectations/should/should_throw_spec.rb +0 -27
  239. data/spec/spec/runner/context_runner_spec.rb +0 -100
  240. data/spec/spec/runner/context_spec.rb +0 -405
  241. data/spec/spec/runner/kernel_ext_spec.rb +0 -16
  242. data/spec/spec/runner/spec_name_generation_spec.rb +0 -102
  243. data/spec/spec/runner/specification_class_spec.rb +0 -72
  244. data/spec/spec/runner/specification_instance_spec.rb +0 -160
  245. data/spec/spec/runner/specification_should_raise_spec.rb +0 -136
@@ -1,12 +1,12 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
- context "should respond_to(:sym)" do
3
+ describe "should respond_to(:sym)" do
4
4
 
5
- specify "should pass if target responds to :sym" do
5
+ it "should pass if target responds to :sym" do
6
6
  Object.new.should respond_to(:methods)
7
7
  end
8
8
 
9
- specify "should fail target does not respond to :sym" do
9
+ it "should fail target does not respond to :sym" do
10
10
  lambda {
11
11
  Object.new.should respond_to(:some_method)
12
12
  }.should fail_with("expected target to respond to :some_method")
@@ -14,17 +14,41 @@ context "should respond_to(:sym)" do
14
14
 
15
15
  end
16
16
 
17
- context "should_not respond_to(:sym)" do
17
+ describe "should respond_to(message1, message2)" do
18
18
 
19
- specify "should pass if target does not respond to :sym" do
19
+ it "should pass if target responds to both messages" do
20
+ Object.new.should respond_to('methods', 'inspect')
21
+ end
22
+
23
+ it "should fail target does not respond to first message" do
24
+ lambda {
25
+ Object.new.should respond_to('method_one', 'inspect')
26
+ }.should fail_with('expected target to respond to "method_one"')
27
+ end
28
+
29
+ it "should fail target does not respond to second message" do
30
+ lambda {
31
+ Object.new.should respond_to('inspect', 'method_one')
32
+ }.should fail_with('expected target to respond to "method_one"')
33
+ end
34
+
35
+ it "should fail target does not respond to either message" do
36
+ lambda {
37
+ Object.new.should respond_to('method_one', 'method_two')
38
+ }.should fail_with('expected target to respond to "method_one", "method_two"')
39
+ end
40
+ end
41
+
42
+ describe "should_not respond_to(:sym)" do
43
+
44
+ it "should pass if target does not respond to :sym" do
20
45
  Object.new.should_not respond_to(:some_method)
21
46
  end
22
47
 
23
- specify "should fail target responds to :sym" do
48
+ it "should fail target responds to :sym" do
24
49
  lambda {
25
50
  Object.new.should_not respond_to(:methods)
26
51
  }.should fail_with("expected target not to respond to :methods")
27
52
  end
28
53
 
29
- end
30
-
54
+ end
@@ -1,14 +1,14 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
- context "should satisfy { block }" do
4
- specify "should pass if block returns true" do
3
+ describe "should satisfy { block }" do
4
+ it "should pass if block returns true" do
5
5
  true.should satisfy { |val| val }
6
6
  true.should satisfy do |val|
7
7
  val
8
8
  end
9
9
  end
10
10
 
11
- specify "should fail if block returns false" do
11
+ it "should fail if block returns false" do
12
12
  lambda {
13
13
  false.should satisfy { |val| val }
14
14
  }.should fail_with("expected false to satisfy block")
@@ -20,15 +20,15 @@ context "should satisfy { block }" do
20
20
  end
21
21
  end
22
22
 
23
- context "should_not satisfy { block }" do
24
- specify "should pass if block returns false" do
23
+ describe "should_not satisfy { block }" do
24
+ it "should pass if block returns false" do
25
25
  false.should_not satisfy { |val| val }
26
26
  false.should_not satisfy do |val|
27
27
  val
28
28
  end
29
29
  end
30
30
 
31
- specify "should fail if block returns true" do
31
+ it "should fail if block returns true" do
32
32
  lambda {
33
33
  true.should_not satisfy { |val| val }
34
34
  }.should fail_with("expected true not to satisfy block")
@@ -0,0 +1,38 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
+
3
+ require 'spec/expectations/differs/default'
4
+
5
+ describe "should ===" do
6
+
7
+ it "should delegate message to target" do
8
+ subject = "apple"
9
+ subject.should_receive(:===).with("apple").and_return(true)
10
+ subject.should === "apple"
11
+ end
12
+
13
+ it "should fail when target.===(actual) returns false" do
14
+ subject = "apple"
15
+ subject.should_receive(:===).with("orange").and_return(false)
16
+ Spec::Expectations.should_receive(:fail_with).with(%[expected "orange", got "apple" (using ===)], "orange", "apple")
17
+ subject.should === "orange"
18
+ end
19
+
20
+ end
21
+
22
+ describe "should_not ===" do
23
+
24
+ it "should delegate message to target" do
25
+ subject = "orange"
26
+ subject.should_receive(:===).with("apple").and_return(false)
27
+ subject.should_not === "apple"
28
+ end
29
+
30
+ it "should fail when target.===(actual) returns false" do
31
+ subject = "apple"
32
+ subject.should_receive(:===).with("apple").and_return(true)
33
+ Spec::Expectations.should_receive(:fail_with).with(%[expected not === "apple", got "apple"], "apple", "apple")
34
+ subject.should_not === "apple"
35
+ end
36
+
37
+ end
38
+
@@ -0,0 +1,37 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
+
3
+ require 'spec/expectations/differs/default'
4
+
5
+ describe "should ==" do
6
+
7
+ it "should delegate message to target" do
8
+ subject = "apple"
9
+ subject.should_receive(:==).with("apple").and_return(true)
10
+ subject.should == "apple"
11
+ end
12
+
13
+ it "should fail when target.==(actual) returns false" do
14
+ subject = "apple"
15
+ Spec::Expectations.should_receive(:fail_with).with(%[expected "orange", got "apple" (using ==)], "orange", "apple")
16
+ subject.should == "orange"
17
+ end
18
+
19
+ end
20
+
21
+ describe "should_not ==" do
22
+
23
+ it "should delegate message to target" do
24
+ subject = "orange"
25
+ subject.should_receive(:==).with("apple").and_return(false)
26
+ subject.should_not == "apple"
27
+ end
28
+
29
+ it "should fail when target.==(actual) returns false" do
30
+ subject = "apple"
31
+ Spec::Expectations.should_receive(:fail_with).with(%[expected not == "apple", got "apple"], "apple", "apple")
32
+ subject.should_not == "apple"
33
+ end
34
+
35
+ end
36
+
37
+
@@ -0,0 +1,36 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
+
3
+ describe "should =~" do
4
+
5
+ it "should delegate message to target" do
6
+ subject = "foo"
7
+ subject.should_receive(:=~).with(/oo/).and_return(true)
8
+ subject.should =~ /oo/
9
+ end
10
+
11
+ it "should fail when target.=~(actual) returns false" do
12
+ subject = "fu"
13
+ subject.should_receive(:=~).with(/oo/).and_return(false)
14
+ Spec::Expectations.should_receive(:fail_with).with(%[expected =~ /oo/, got "fu"], /oo/, "fu")
15
+ subject.should =~ /oo/
16
+ end
17
+
18
+ end
19
+
20
+ describe "should_not =~" do
21
+
22
+ it "should delegate message to target" do
23
+ subject = "fu"
24
+ subject.should_receive(:=~).with(/oo/).and_return(false)
25
+ subject.should_not =~ /oo/
26
+ end
27
+
28
+ it "should fail when target.=~(actual) returns false" do
29
+ subject = "foo"
30
+ subject.should_receive(:=~).with(/oo/).and_return(true)
31
+ Spec::Expectations.should_receive(:fail_with).with(%[expected not =~ /oo/, got "foo"], /oo/, "foo")
32
+ subject.should_not =~ /oo/
33
+ end
34
+
35
+ end
36
+
@@ -1,59 +1,51 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
- context "should throw_symbol" do
4
- specify "should pass if any Symbol is thrown" do
5
- lambda{ throw :sym }.should throw_symbol
6
- end
7
-
8
- specify "should fail if no Symbol is thrown" do
9
- lambda {
10
- lambda { }.should throw_symbol
11
- }.should fail_with("expected a Symbol but nothing was thrown")
12
- end
13
- end
14
-
15
- context "should_not throw_symbol" do
16
- specify "should pass if no Symbol is thrown" do
17
- lambda{ }.should_not throw_symbol
18
- end
19
-
20
- specify "should fail if any Symbol is thrown" do
21
- lambda {
22
- lambda { throw :sym }.should_not throw_symbol
23
- }.should fail_with("expected no Symbol, got :sym")
24
- end
25
- end
26
-
27
- context "should throw_symbol(:sym)" do
28
- specify "should pass if correct Symbol is thrown" do
29
- lambda{ throw :sym }.should throw_symbol(:sym)
30
- end
31
-
32
- specify "should fail if no Symbol is thrown" do
33
- lambda {
34
- lambda { }.should throw_symbol(:sym)
35
- }.should fail_with("expected :sym but nothing was thrown")
36
- end
37
-
38
- specify "should fail if wrong Symbol is thrown" do
39
- lambda {
40
- lambda { throw :wrong_sym }.should throw_symbol(:sym)
41
- }.should fail_with("expected :sym, got :wrong_sym")
42
- end
43
- end
44
-
45
- context "should_not throw_symbol(:sym)" do
46
- specify "should pass if no Symbol is thrown" do
47
- lambda { }.should_not throw_symbol(:sym)
48
- end
49
-
50
- specify "should pass if other Symbol is thrown" do
51
- lambda { throw :wrong_sym }.should_not throw_symbol(:sym)
52
- end
53
-
54
- specify "should fail if correct Symbol is thrown" do
55
- lambda {
56
- lambda{ throw :sym }.should_not throw_symbol(:sym)
57
- }.should fail_with("expected :sym not to be thrown")
3
+ module Spec
4
+ module Matchers
5
+ describe ThrowSymbol, "(constructed with no Symbol)" do
6
+ before(:each) { @matcher = ThrowSymbol.new }
7
+
8
+ it "should match if any Symbol is thrown" do
9
+ @matcher.matches?(lambda{ throw :sym }).should be_true
10
+ end
11
+ it "should not match if no Symbol is thrown" do
12
+ @matcher.matches?(lambda{ }).should be_false
13
+ end
14
+ it "should provide a failure message" do
15
+ @matcher.matches?(lambda{})
16
+ @matcher.failure_message.should == "expected a Symbol but nothing was thrown"
17
+ end
18
+ it "should provide a negative failure message" do
19
+ @matcher.matches?(lambda{ throw :sym})
20
+ @matcher.negative_failure_message.should == "expected no Symbol, got :sym"
21
+ end
22
+ end
23
+
24
+ describe ThrowSymbol, "(constructed with a Symbol)" do
25
+ before(:each) { @matcher = ThrowSymbol.new(:sym) }
26
+
27
+ it "should match if correct Symbol is thrown" do
28
+ @matcher.matches?(lambda{ throw :sym }).should be_true
29
+ end
30
+ it "should not match no Symbol is thrown" do
31
+ @matcher.matches?(lambda{ }).should be_false
32
+ end
33
+ it "should not match if correct Symbol is thrown" do
34
+ @matcher.matches?(lambda{ throw :other_sym }).should be_false
35
+ @matcher.failure_message.should == "expected :sym, got :other_sym"
36
+ end
37
+ it "should provide a failure message when no Symbol is thrown" do
38
+ @matcher.matches?(lambda{})
39
+ @matcher.failure_message.should == "expected :sym but nothing was thrown"
40
+ end
41
+ it "should provide a failure message when wrong Symbol is thrown" do
42
+ @matcher.matches?(lambda{ throw :other_sym })
43
+ @matcher.failure_message.should == "expected :sym, got :other_sym"
44
+ end
45
+ it "should provide a negative failure message" do
46
+ @matcher.matches?(lambda{ throw :sym })
47
+ @matcher.negative_failure_message.should == "expected :sym not to be thrown"
48
+ end
49
+ end
58
50
  end
59
51
  end
@@ -1,34 +1,29 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
3
  module Spec
4
- module Mocks
5
- context "AnyNumberOfTimes" do
6
- setup do
7
- @mock = Mock.new("test mock", {
8
- :auto_verify => false
9
- })
10
-
11
- end
12
- specify "should pass if any number of times method is called many times" do
4
+ module Mocks
5
+
6
+ describe "AnyNumberOfTimes" do
7
+ before(:each) do
8
+ @mock = Mock.new("test mock")
9
+ end
10
+
11
+ it "should pass if any number of times method is called many times" do
13
12
  @mock.should_receive(:random_call).any_number_of_times
14
13
  (1..10).each do
15
14
  @mock.random_call
16
15
  end
17
- @mock.__verify
18
-
19
- end
20
- specify "should pass if any number of times method is called once" do
16
+ end
17
+
18
+ it "should pass if any number of times method is called once" do
21
19
  @mock.should_receive(:random_call).any_number_of_times
22
20
  @mock.random_call
23
- @mock.__verify
21
+ end
24
22
 
25
- end
26
- specify "should pass if any number of times method is not called" do
23
+ it "should pass if any number of times method is not called" do
27
24
  @mock.should_receive(:random_call).any_number_of_times
28
- @mock.__verify
29
-
25
+ end
30
26
  end
31
-
32
- end
33
- end
27
+
28
+ end
34
29
  end
@@ -1,7 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
- context "An ArgumentExpectation" do
4
- specify "should consider an object that responds to #matches? and #description to be a matcher" do
3
+ describe "An ArgumentExpectation" do
4
+ it "should consider an object that responds to #matches? and #description to be a matcher" do
5
5
  argument_expecatation = Spec::Mocks::ArgumentExpectation.new([])
6
6
  obj = mock("matcher")
7
7
  obj.should_receive(:respond_to?).with(:matches?).and_return(true)
@@ -9,7 +9,7 @@ context "An ArgumentExpectation" do
9
9
  argument_expecatation.is_matcher?(obj).should be_true
10
10
  end
11
11
 
12
- specify "should NOT consider an object that only responds to #matches? to be a matcher" do
12
+ it "should NOT consider an object that only responds to #matches? to be a matcher" do
13
13
  argument_expecatation = Spec::Mocks::ArgumentExpectation.new([])
14
14
  obj = mock("matcher")
15
15
  obj.should_receive(:respond_to?).with(:matches?).and_return(true)
@@ -2,95 +2,95 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
3
  module Spec
4
4
  module Mocks
5
- context "at_least" do
6
- setup do
7
- @mock = Mock.new("test mock", :auto_verify => false)
5
+ describe "at_least" do
6
+ before(:each) do
7
+ @mock = Mock.new("test mock")
8
8
  end
9
9
 
10
- specify "should fail if method is never called" do
10
+ it "should fail if method is never called" do
11
11
  @mock.should_receive(:random_call).at_least(4).times
12
12
  lambda do
13
- @mock.__verify
14
- end.should_raise(MockExpectationError)
13
+ @mock.rspec_verify
14
+ end.should raise_error(MockExpectationError)
15
15
  end
16
16
 
17
- specify "should fail when called less than n times" do
17
+ it "should fail when called less than n times" do
18
18
  @mock.should_receive(:random_call).at_least(4).times
19
19
  @mock.random_call
20
20
  @mock.random_call
21
21
  @mock.random_call
22
22
  lambda do
23
- @mock.__verify
24
- end.should_raise(MockExpectationError)
23
+ @mock.rspec_verify
24
+ end.should raise_error(MockExpectationError)
25
25
  end
26
26
 
27
- specify "should fail when at least once method is never called" do
27
+ it "should fail when at least once method is never called" do
28
28
  @mock.should_receive(:random_call).at_least(:once)
29
29
  lambda do
30
- @mock.__verify
31
- end.should_raise(MockExpectationError)
30
+ @mock.rspec_verify
31
+ end.should raise_error(MockExpectationError)
32
32
  end
33
33
 
34
- specify "should fail when at least twice method is called once" do
34
+ it "should fail when at least twice method is called once" do
35
35
  @mock.should_receive(:random_call).at_least(:twice)
36
36
  @mock.random_call
37
37
  lambda do
38
- @mock.__verify
39
- end.should_raise(MockExpectationError)
38
+ @mock.rspec_verify
39
+ end.should raise_error(MockExpectationError)
40
40
  end
41
41
 
42
- specify "should fail when at least twice method is never called" do
42
+ it "should fail when at least twice method is never called" do
43
43
  @mock.should_receive(:random_call).at_least(:twice)
44
44
  lambda do
45
- @mock.__verify
46
- end.should_raise(MockExpectationError)
45
+ @mock.rspec_verify
46
+ end.should raise_error(MockExpectationError)
47
47
  end
48
48
 
49
- specify "should pass when at least n times method is called exactly n times" do
49
+ it "should pass when at least n times method is called exactly n times" do
50
50
  @mock.should_receive(:random_call).at_least(4).times
51
51
  @mock.random_call
52
52
  @mock.random_call
53
53
  @mock.random_call
54
54
  @mock.random_call
55
- @mock.__verify
55
+ @mock.rspec_verify
56
56
  end
57
57
 
58
- specify "should pass when at least n times method is called n plus 1 times" do
58
+ it "should pass when at least n times method is called n plus 1 times" do
59
59
  @mock.should_receive(:random_call).at_least(4).times
60
60
  @mock.random_call
61
61
  @mock.random_call
62
62
  @mock.random_call
63
63
  @mock.random_call
64
64
  @mock.random_call
65
- @mock.__verify
65
+ @mock.rspec_verify
66
66
  end
67
67
 
68
- specify "should pass when at least once method is called once" do
68
+ it "should pass when at least once method is called once" do
69
69
  @mock.should_receive(:random_call).at_least(:once)
70
70
  @mock.random_call
71
- @mock.__verify
71
+ @mock.rspec_verify
72
72
  end
73
73
 
74
- specify "should pass when at least once method is called twice" do
74
+ it "should pass when at least once method is called twice" do
75
75
  @mock.should_receive(:random_call).at_least(:once)
76
76
  @mock.random_call
77
77
  @mock.random_call
78
- @mock.__verify
78
+ @mock.rspec_verify
79
79
  end
80
80
 
81
- specify "should pass when at least twice method is called three times" do
81
+ it "should pass when at least twice method is called three times" do
82
82
  @mock.should_receive(:random_call).at_least(:twice)
83
83
  @mock.random_call
84
84
  @mock.random_call
85
85
  @mock.random_call
86
- @mock.__verify
86
+ @mock.rspec_verify
87
87
  end
88
88
 
89
- specify "should pass when at least twice method is called twice" do
89
+ it "should pass when at least twice method is called twice" do
90
90
  @mock.should_receive(:random_call).at_least(:twice)
91
91
  @mock.random_call
92
92
  @mock.random_call
93
- @mock.__verify
93
+ @mock.rspec_verify
94
94
  end
95
95
  end
96
96
  end