rspec-mocks 2.13.1 → 2.14.0.rc1

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 (99) hide show
  1. data/Changelog.md +45 -4
  2. data/README.md +1 -1
  3. data/features/argument_matchers/README.md +2 -2
  4. data/features/argument_matchers/explicit.feature +2 -3
  5. data/features/argument_matchers/general_matchers.feature +2 -2
  6. data/features/argument_matchers/type_matchers.feature +3 -4
  7. data/features/message_expectations/README.md +2 -2
  8. data/features/message_expectations/any_instance.feature +2 -2
  9. data/features/message_expectations/block_local_expectations.feature.pending +3 -3
  10. data/features/message_expectations/expect_message_using_expect.feature +103 -0
  11. data/features/message_expectations/expect_message_using_should_receive.feature +118 -0
  12. data/features/message_expectations/receive_counts.feature +1 -1
  13. data/features/method_stubs/README.md +1 -1
  14. data/features/method_stubs/any_instance.feature +11 -11
  15. data/features/method_stubs/as_null_object.feature +1 -1
  16. data/features/method_stubs/stub_implementation.feature +2 -2
  17. data/features/outside_rspec/configuration.feature +0 -20
  18. data/features/spies/spy_partial_mock_method.feature +34 -0
  19. data/features/spies/spy_pure_mock_method.feature +76 -0
  20. data/features/spies/spy_unstubbed_method.feature +18 -0
  21. data/features/step_definitions/additional_cli_steps.rb +7 -0
  22. data/features/test_frameworks/test_unit.feature +43 -0
  23. data/lib/rspec/mocks.rb +9 -34
  24. data/lib/rspec/mocks/any_instance/chain.rb +8 -2
  25. data/lib/rspec/mocks/any_instance/expectation_chain.rb +19 -16
  26. data/lib/rspec/mocks/any_instance/recorder.rb +6 -3
  27. data/lib/rspec/mocks/any_instance/stub_chain.rb +11 -11
  28. data/lib/rspec/mocks/any_instance/stub_chain_chain.rb +8 -10
  29. data/lib/rspec/mocks/argument_list_matcher.rb +7 -3
  30. data/lib/rspec/mocks/configuration.rb +28 -1
  31. data/lib/rspec/mocks/deprecation.rb +18 -0
  32. data/lib/rspec/mocks/error_generator.rb +60 -8
  33. data/lib/rspec/mocks/errors.rb +1 -1
  34. data/lib/rspec/mocks/example_methods.rb +39 -3
  35. data/lib/rspec/mocks/extensions/marshal.rb +4 -10
  36. data/lib/rspec/mocks/framework.rb +16 -4
  37. data/lib/rspec/mocks/instance_method_stasher.rb +3 -0
  38. data/lib/rspec/mocks/matchers/have_received.rb +93 -0
  39. data/lib/rspec/mocks/matchers/receive.rb +92 -0
  40. data/lib/rspec/mocks/message_expectation.rb +66 -129
  41. data/lib/rspec/mocks/method_double.rb +50 -43
  42. data/lib/rspec/mocks/mutate_const.rb +8 -20
  43. data/lib/rspec/mocks/proxy.rb +41 -25
  44. data/lib/rspec/mocks/proxy_for_nil.rb +36 -0
  45. data/lib/rspec/mocks/space.rb +64 -11
  46. data/lib/rspec/mocks/stub_chain.rb +51 -0
  47. data/lib/rspec/mocks/syntax.rb +329 -0
  48. data/lib/rspec/mocks/targets.rb +69 -0
  49. data/lib/rspec/mocks/test_double.rb +25 -4
  50. data/lib/rspec/mocks/version.rb +1 -1
  51. data/lib/spec/mocks.rb +1 -3
  52. data/spec/rspec/mocks/and_call_original_spec.rb +8 -0
  53. data/spec/rspec/mocks/and_yield_spec.rb +6 -6
  54. data/spec/rspec/mocks/any_instance_spec.rb +43 -31
  55. data/spec/rspec/mocks/any_number_of_times_spec.rb +6 -0
  56. data/spec/rspec/mocks/argument_expectation_spec.rb +12 -14
  57. data/spec/rspec/mocks/at_least_spec.rb +46 -37
  58. data/spec/rspec/mocks/at_most_spec.rb +12 -12
  59. data/spec/rspec/mocks/block_return_value_spec.rb +18 -1
  60. data/spec/rspec/mocks/bug_report_10260_spec.rb +1 -1
  61. data/spec/rspec/mocks/bug_report_10263_spec.rb +1 -1
  62. data/spec/rspec/mocks/bug_report_11545_spec.rb +4 -4
  63. data/spec/rspec/mocks/bug_report_600_spec.rb +1 -1
  64. data/spec/rspec/mocks/bug_report_7611_spec.rb +1 -1
  65. data/spec/rspec/mocks/configuration_spec.rb +124 -0
  66. data/spec/rspec/mocks/double_spec.rb +13 -1
  67. data/spec/rspec/mocks/failing_argument_matchers_spec.rb +17 -1
  68. data/spec/rspec/mocks/hash_excluding_matcher_spec.rb +13 -13
  69. data/spec/rspec/mocks/matchers/have_received_spec.rb +266 -0
  70. data/spec/rspec/mocks/matchers/receive_spec.rb +318 -0
  71. data/spec/rspec/mocks/methods_spec.rb +27 -0
  72. data/spec/rspec/mocks/mock_ordering_spec.rb +4 -4
  73. data/spec/rspec/mocks/mock_space_spec.rb +94 -39
  74. data/spec/rspec/mocks/mock_spec.rb +65 -50
  75. data/spec/rspec/mocks/multiple_return_value_spec.rb +10 -10
  76. data/spec/rspec/mocks/mutate_const_spec.rb +21 -1
  77. data/spec/rspec/mocks/nil_expectation_warning_spec.rb +10 -4
  78. data/spec/rspec/mocks/null_object_mock_spec.rb +11 -2
  79. data/spec/rspec/mocks/once_counts_spec.rb +5 -5
  80. data/spec/rspec/mocks/options_hash_spec.rb +4 -4
  81. data/spec/rspec/mocks/partial_mock_spec.rb +20 -11
  82. data/spec/rspec/mocks/partial_mock_using_mocks_directly_spec.rb +7 -7
  83. data/spec/rspec/mocks/passing_argument_matchers_spec.rb +2 -2
  84. data/spec/rspec/mocks/precise_counts_spec.rb +6 -6
  85. data/spec/rspec/mocks/serialization_spec.rb +1 -22
  86. data/spec/rspec/mocks/stash_spec.rb +4 -12
  87. data/spec/rspec/mocks/stub_implementation_spec.rb +3 -3
  88. data/spec/rspec/mocks/stub_spec.rb +44 -20
  89. data/spec/rspec/mocks/stubbed_message_expectations_spec.rb +6 -6
  90. data/spec/rspec/mocks/twice_counts_spec.rb +6 -6
  91. data/spec/rspec/mocks_spec.rb +1 -3
  92. data/spec/spec_helper.rb +25 -1
  93. metadata +86 -81
  94. data/features/message_expectations/expect_message.feature +0 -94
  95. data/lib/rspec/mocks/any_instance.rb +0 -81
  96. data/lib/rspec/mocks/extensions/psych.rb +0 -23
  97. data/lib/rspec/mocks/methods.rb +0 -155
  98. data/lib/rspec/mocks/serialization.rb +0 -34
  99. data/spec/rspec/mocks/combining_implementation_instructions_spec.rb +0 -197
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ module RSpec
4
+ module Mocks
5
+ describe "Methods added to every object" do
6
+ include_context "with syntax", :expect
7
+
8
+ def added_methods
9
+ host = Class.new
10
+ orig_instance_methods = host.instance_methods
11
+ Syntax.enable_should(host)
12
+ (host.instance_methods - orig_instance_methods).map(&:to_sym)
13
+ end
14
+
15
+ it 'limits the number of methods that get added to all objects' do
16
+ # If really necessary, you can add to this list, but long term,
17
+ # we are hoping to cut down on the number of methods added to all objects
18
+ expect(added_methods).to match_array([
19
+ :as_null_object, :null_object?,
20
+ :received_message?, :should_not_receive, :should_receive,
21
+ :stub, :stub!, :stub_chain, :unstub, :unstub!
22
+ ])
23
+ end
24
+ end
25
+ end
26
+ end
27
+
@@ -5,7 +5,7 @@ module RSpec
5
5
 
6
6
  describe "ordering" do
7
7
  before { @double = double("test double") }
8
- after { @double.rspec_reset }
8
+ after { reset @double }
9
9
 
10
10
  it "passes when messages are received in order" do
11
11
  @double.should_receive(:one).ordered
@@ -65,8 +65,8 @@ module RSpec
65
65
  expect {
66
66
  a.three
67
67
  }.to raise_error(RSpec::Mocks::MockExpectationError, "Double \"test double\" received :three out of order")
68
- a.rspec_reset
69
- b.rspec_reset
68
+ reset a
69
+ reset b
70
70
  end
71
71
 
72
72
  it "ignores order of non ordered messages" do
@@ -86,7 +86,7 @@ module RSpec
86
86
  @double.ignored_2
87
87
  @double.ordered_3
88
88
  @double.ignored_1
89
- @double.rspec_verify
89
+ verify @double
90
90
  end
91
91
 
92
92
  it "supports duplicate messages" do
@@ -4,55 +4,110 @@ require 'rspec/mocks'
4
4
  module RSpec
5
5
  module Mocks
6
6
  describe Space do
7
- before :each do
8
- @space = RSpec::Mocks::Space.new
9
- klazz = Class.new do
10
- def rspec_verify
11
- @verified = true
12
- end
13
- def verified?
14
- @verified
15
- end
16
- def rspec_reset
17
- @reset = true
18
- end
19
- def reset?
20
- @reset
21
- end
22
- end
23
- @m1 = klazz.new
24
- @m2 = klazz.new
7
+ let(:space) { RSpec::Mocks::Space.new }
8
+ let(:dbl_1) { Object.new }
9
+ let(:dbl_2) { Object.new }
10
+
11
+ before do
12
+ space.ensure_registered(dbl_1)
13
+ space.ensure_registered(dbl_2)
25
14
  end
15
+
26
16
  it "verifies all mocks within" do
27
- @space.add(@m1)
28
- @space.add(@m2)
29
- @space.verify_all
30
- expect(@m1).to be_verified
31
- expect(@m2).to be_verified
17
+ verifies = []
18
+
19
+ space.proxy_for(dbl_1).stub(:verify) { verifies << :dbl_1 }
20
+ space.proxy_for(dbl_2).stub(:verify) { verifies << :dbl_2 }
21
+
22
+ space.verify_all
23
+
24
+ expect(verifies).to match_array([:dbl_1, :dbl_2])
32
25
  end
26
+
27
+ def define_singleton_method_on_recorder_for(klass, name, &block)
28
+ recorder = space.any_instance_recorder_for(klass)
29
+ (class << recorder; self; end).send(:define_method, name, &block)
30
+ end
31
+
32
+ it 'verifies all any_instance recorders within' do
33
+ klass_1, klass_2 = Class.new, Class.new
34
+
35
+ verifies = []
36
+
37
+ # We can't `stub` a method on the recorder because it defines its own `stub`...
38
+ define_singleton_method_on_recorder_for(klass_1, :verify) { verifies << :klass_1 }
39
+ define_singleton_method_on_recorder_for(klass_2, :verify) { verifies << :klass_2 }
40
+
41
+ space.verify_all
42
+
43
+ expect(verifies).to match_array([:klass_1, :klass_2])
44
+ end
45
+
33
46
  it "resets all mocks within" do
34
- @space.add(m1 = double("mock1"))
35
- @space.add(m2 = double("mock2"))
36
- m1.should_receive(:rspec_reset)
37
- m2.should_receive(:rspec_reset)
38
- @space.reset_all
47
+ resets = []
48
+
49
+ space.proxy_for(dbl_1).stub(:reset) { resets << :dbl_1 }
50
+ space.proxy_for(dbl_2).stub(:reset) { resets << :dbl_2 }
51
+
52
+ space.reset_all
53
+
54
+ expect(resets).to match_array([:dbl_1, :dbl_2])
39
55
  end
40
- it "clears internal mocks on reset_all" do
41
- @space.add(double("mock"))
42
- @space.reset_all
43
- expect(@space.instance_eval { receivers.empty? }).to be_true
56
+
57
+ it "does not leak mock proxies between examples" do
58
+ expect {
59
+ space.reset_all
60
+ }.to change { space.proxies.size }.to(0)
61
+ end
62
+
63
+ it 'does not leak any instance recorders between examples' do
64
+ space.any_instance_recorder_for(Class.new)
65
+ expect {
66
+ space.reset_all
67
+ }.to change { space.any_instance_recorders.size }.to(0)
44
68
  end
69
+
45
70
  it "resets the ordering" do
46
- @space.reset_all
47
- expect(@space.expectation_ordering).to be_empty
71
+ space.expectation_ordering.register :some_expectation
72
+
73
+ expect {
74
+ space.reset_all
75
+ }.to change { space.expectation_ordering.empty? }.from(false).to(true)
48
76
  end
77
+
49
78
  it "only adds an instance once" do
50
- @space.add(m1 = double("mock1"))
51
- @space.add(m1)
52
- m1.should_receive(:rspec_verify)
53
- @space.verify_all
79
+ m1 = double("mock1")
80
+
81
+ expect {
82
+ space.ensure_registered(m1)
83
+ }.to change { space.proxies }
84
+
85
+ expect {
86
+ space.ensure_registered(m1)
87
+ }.not_to change { space.proxies }
88
+ end
89
+
90
+ it 'returns a consistent any_instance_recorder for a given class' do
91
+ klass_1, klass_2 = Class.new, Class.new
92
+
93
+ r1 = space.any_instance_recorder_for(klass_1)
94
+ r2 = space.any_instance_recorder_for(klass_1)
95
+ r3 = space.any_instance_recorder_for(klass_2)
96
+
97
+ expect(r1).to be(r2)
98
+ expect(r1).not_to be(r3)
99
+ end
100
+
101
+ it 'removes an any_instance_recorder when requested' do
102
+ klass = Class.new
103
+
104
+ space.any_instance_recorder_for(klass)
105
+
106
+ expect {
107
+ space.remove_any_instance_recorder_for(klass)
108
+ }.to change { space.any_instance_recorders.size }.by(-1)
54
109
  end
55
110
  end
56
111
  end
57
112
  end
58
-
113
+
@@ -4,7 +4,7 @@ module RSpec
4
4
  module Mocks
5
5
  describe Mock do
6
6
  before(:each) { @double = double("test double") }
7
- after(:each) { @double.rspec_reset }
7
+ after(:each) { reset @double }
8
8
 
9
9
  it "has method_missing as private" do
10
10
  expect(RSpec::Mocks::Mock.private_instance_methods).to include_method(:method_missing)
@@ -17,7 +17,7 @@ module RSpec
17
17
  it "reports line number of expectation of unreceived message" do
18
18
  expected_error_line = __LINE__; @double.should_receive(:wont_happen).with("x", 3)
19
19
  begin
20
- @double.rspec_verify
20
+ verify @double
21
21
  violated
22
22
  rescue RSpec::Mocks::MockExpectationError => e
23
23
  # NOTE - this regexp ended w/ $, but jruby adds extra info at the end of the line
@@ -29,7 +29,7 @@ module RSpec
29
29
  @double.stub(:wont_happen)
30
30
  expected_error_line = __LINE__; @double.should_receive(:wont_happen).with("x", 3)
31
31
  begin
32
- @double.rspec_verify
32
+ verify @double
33
33
  violated
34
34
  rescue RSpec::Mocks::MockExpectationError => e
35
35
  # NOTE - this regexp ended w/ $, but jruby adds extra info at the end of the line
@@ -39,12 +39,11 @@ module RSpec
39
39
 
40
40
  it "passes when not receiving message specified as not to be received" do
41
41
  @double.should_not_receive(:not_expected)
42
- @double.rspec_verify
42
+ verify @double
43
43
  end
44
44
 
45
45
  it "warns when should_not_receive is followed by and_return" do
46
- RSpec::Mocks.should_receive(:warn_deprecation).
47
- with(/`and_return` with `should_not_receive` is deprecated/)
46
+ expect(RSpec).to receive(:deprecate).with("and_return with should_not_receive")
48
47
 
49
48
  @double.should_not_receive(:do_something).and_return(1)
50
49
  end
@@ -53,7 +52,7 @@ module RSpec
53
52
  @double.should_not_receive(:message).with("unwanted text")
54
53
  @double.should_receive(:message).with("other text")
55
54
  @double.message "other text"
56
- @double.rspec_verify
55
+ verify @double
57
56
  end
58
57
 
59
58
  it "fails when receiving message specified as not to be received" do
@@ -63,7 +62,7 @@ module RSpec
63
62
  violated
64
63
  }.to raise_error(
65
64
  RSpec::Mocks::MockExpectationError,
66
- %Q|(Double "test double").not_expected(no args)\n expected: 0 times\n received: 1 time|
65
+ %Q|(Double "test double").not_expected(no args)\n expected: 0 times with any arguments\n received: 1 time|
67
66
  )
68
67
  end
69
68
 
@@ -74,39 +73,50 @@ module RSpec
74
73
  violated
75
74
  }.to raise_error(
76
75
  RSpec::Mocks::MockExpectationError,
77
- %Q|(Double "test double").not_expected("unexpected text")\n expected: 0 times\n received: 1 time|
76
+ %Q|(Double "test double").not_expected("unexpected text")\n expected: 0 times with arguments: ("unexpected text")\n received: 1 time with arguments: ("unexpected text")|
77
+ )
78
+ end
79
+
80
+ it "fails when array arguments do not match" do
81
+ @double.should_not_receive(:not_expected).with(["do not want"])
82
+ expect {
83
+ @double.not_expected(["do not want"])
84
+ violated
85
+ }.to raise_error(
86
+ RSpec::Mocks::MockExpectationError,
87
+ %Q|(Double "test double").not_expected(["do not want"])\n expected: 0 times with arguments: (["do not want"])\n received: 1 time with arguments: (["do not want"])|
78
88
  )
79
89
  end
80
90
 
81
91
  it "passes when receiving message specified as not to be received with wrong args" do
82
92
  @double.should_not_receive(:not_expected).with("unexpected text")
83
93
  @double.not_expected "really unexpected text"
84
- @double.rspec_verify
94
+ verify @double
85
95
  end
86
96
 
87
97
  it "allows block to calculate return values" do
88
98
  @double.should_receive(:something).with("a","b","c").and_return { |a,b,c| c+b+a }
89
99
  expect(@double.something("a","b","c")).to eq "cba"
90
- @double.rspec_verify
100
+ verify @double
91
101
  end
92
102
 
93
103
  it "allows parameter as return value" do
94
104
  @double.should_receive(:something).with("a","b","c").and_return("booh")
95
105
  expect(@double.something("a","b","c")).to eq "booh"
96
- @double.rspec_verify
106
+ verify @double
97
107
  end
98
108
 
99
109
  it "returns the previously stubbed value if no return value is set" do
100
110
  @double.stub(:something).with("a","b","c").and_return(:stubbed_value)
101
111
  @double.should_receive(:something).with("a","b","c")
102
112
  expect(@double.something("a","b","c")).to eq :stubbed_value
103
- @double.rspec_verify
113
+ verify @double
104
114
  end
105
115
 
106
116
  it "returns nil if no return value is set and there is no previously stubbed value" do
107
117
  @double.should_receive(:something).with("a","b","c")
108
118
  expect(@double.something("a","b","c")).to be_nil
109
- @double.rspec_verify
119
+ verify @double
110
120
  end
111
121
 
112
122
  it "raises exception if args don't match when method called" do
@@ -133,7 +143,7 @@ module RSpec
133
143
  @double.should_receive(:something).with("a","b","c")
134
144
  expect {
135
145
  @double.something("a","d","c")
136
- @double.rspec_verify
146
+ verify @double
137
147
  }.to raise_error(RSpec::Mocks::MockExpectationError, "Double \"test double\" received :something with unexpected arguments\n expected: (\"a\", \"b\", \"c\")\n got: (\"a\", \"d\", \"c\")")
138
148
  end
139
149
 
@@ -142,7 +152,7 @@ module RSpec
142
152
  @double.should_receive(:something).with("a","b","c")
143
153
  expect {
144
154
  @double.something("a","d","c")
145
- @double.rspec_verify
155
+ verify @double
146
156
  }.to raise_error(RSpec::Mocks::MockExpectationError, "Double \"test double\" received :something with unexpected arguments\n expected: (\"a\", \"b\", \"c\")\n got: (\"a\", \"d\", \"c\")")
147
157
  end
148
158
 
@@ -153,7 +163,7 @@ module RSpec
153
163
 
154
164
  expect {
155
165
  @double.method_with_default_argument(nil)
156
- @double.rspec_verify
166
+ verify @double
157
167
  }.to raise_error(RSpec::Mocks::MockExpectationError, "Double \"test double\" received :method_with_default_argument with unexpected arguments\n expected: ({})\n got: (nil)")
158
168
  end
159
169
  end
@@ -172,7 +182,7 @@ module RSpec
172
182
  "booh"
173
183
  end
174
184
  expect(@double.something("a", "b")).to eq "booh"
175
- @double.rspec_verify
185
+ verify @double
176
186
  end
177
187
 
178
188
  it "fails if expectation block fails" do
@@ -185,6 +195,10 @@ module RSpec
185
195
  }.to raise_error(RSpec::Expectations::ExpectationNotMetError)
186
196
  end
187
197
 
198
+ it "is wrappable in an array" do
199
+ expect( Array(@double) ).to eq([@double])
200
+ end
201
+
188
202
  context "with Ruby > 1.8.6", :unless => RUBY_VERSION.to_s == '1.8.6' do
189
203
  it "passes proc to expectation block without an argument" do
190
204
  # We eval this because Ruby 1.8.6's syntax parser barfs on { |&block| ... }
@@ -213,7 +227,7 @@ module RSpec
213
227
  @double.should_receive(:not_expected).never
214
228
  expect { @double.not_expected }.
215
229
  to raise_error(RSpec::Mocks::MockExpectationError,
216
- %Q|(Double "test double").not_expected(no args)\n expected: 0 times\n received: 1 time|
230
+ %Q|(Double "test double").not_expected(no args)\n expected: 0 times with any arguments\n received: 1 time|
217
231
  )
218
232
  end
219
233
 
@@ -282,7 +296,7 @@ module RSpec
282
296
  @double.something 1
283
297
  @double.something "a", 2
284
298
  @double.something [], {}, "joe", 7
285
- @double.rspec_verify
299
+ verify @double
286
300
  end
287
301
 
288
302
  it "fails on no args if any args received" do
@@ -303,7 +317,7 @@ module RSpec
303
317
  @double.stub(:method_that_yields).and_yield
304
318
  value = @double.method_that_yields { :returned_obj }
305
319
  expect(value).to eq :returned_obj
306
- @double.rspec_verify
320
+ verify @double
307
321
  end
308
322
 
309
323
  it "yields 0 args to blocks that take a variable number of arguments" do
@@ -311,7 +325,7 @@ module RSpec
311
325
  a = nil
312
326
  @double.yield_back {|*x| a = x}
313
327
  expect(a).to eq []
314
- @double.rspec_verify
328
+ verify @double
315
329
  end
316
330
 
317
331
  it "yields 0 args multiple times to blocks that take a variable number of arguments" do
@@ -320,7 +334,7 @@ module RSpec
320
334
  b = []
321
335
  @double.yield_back {|*a| b << a}
322
336
  expect(b).to eq [ [], [] ]
323
- @double.rspec_verify
337
+ verify @double
324
338
  end
325
339
 
326
340
  it "yields one arg to blocks that take a variable number of arguments" do
@@ -328,7 +342,7 @@ module RSpec
328
342
  a = nil
329
343
  @double.yield_back {|*x| a = x}
330
344
  expect(a).to eq [99]
331
- @double.rspec_verify
345
+ verify @double
332
346
  end
333
347
 
334
348
  it "yields one arg 3 times consecutively to blocks that take a variable number of arguments" do
@@ -338,7 +352,7 @@ module RSpec
338
352
  b = []
339
353
  @double.yield_back {|*a| b << a}
340
354
  expect(b).to eq [[99], [43], ["something fruity"]]
341
- @double.rspec_verify
355
+ verify @double
342
356
  end
343
357
 
344
358
  it "yields many args to blocks that take a variable number of arguments" do
@@ -346,7 +360,7 @@ module RSpec
346
360
  a = nil
347
361
  @double.yield_back {|*x| a = x}
348
362
  expect(a).to eq [99, 27, "go"]
349
- @double.rspec_verify
363
+ verify @double
350
364
  end
351
365
 
352
366
  it "yields many args 3 times consecutively to blocks that take a variable number of arguments" do
@@ -356,7 +370,7 @@ module RSpec
356
370
  b = []
357
371
  @double.yield_back {|*a| b << a}
358
372
  expect(b).to eq [[99, :green, "go"], ["wait", :amber], ["stop", 12, :red]]
359
- @double.rspec_verify
373
+ verify @double
360
374
  end
361
375
 
362
376
  it "yields single value" do
@@ -364,7 +378,7 @@ module RSpec
364
378
  a = nil
365
379
  @double.yield_back {|x| a = x}
366
380
  expect(a).to eq 99
367
- @double.rspec_verify
381
+ verify @double
368
382
  end
369
383
 
370
384
  it "yields single value 3 times consecutively" do
@@ -374,7 +388,7 @@ module RSpec
374
388
  b = []
375
389
  @double.yield_back {|a| b << a}
376
390
  expect(b).to eq [99, 43, "something fruity"]
377
- @double.rspec_verify
391
+ verify @double
378
392
  end
379
393
 
380
394
  it "yields two values" do
@@ -383,7 +397,7 @@ module RSpec
383
397
  @double.yield_back {|x,y| a=x; b=y}
384
398
  expect(a).to eq 'wha'
385
399
  expect(b).to eq 'zup'
386
- @double.rspec_verify
400
+ verify @double
387
401
  end
388
402
 
389
403
  it "yields two values 3 times consecutively" do
@@ -393,7 +407,7 @@ module RSpec
393
407
  c = []
394
408
  @double.yield_back {|a,b| c << [a, b]}
395
409
  expect(c).to eq [['wha', 'zup'], ['not', 'down'], [14, 65]]
396
- @double.rspec_verify
410
+ verify @double
397
411
  end
398
412
 
399
413
  it "fails when calling yielding method with wrong arity" do
@@ -423,7 +437,7 @@ module RSpec
423
437
  it "is able to double send" do
424
438
  @double.should_receive(:send).with(any_args)
425
439
  @double.send 'hi'
426
- @double.rspec_verify
440
+ verify @double
427
441
  end
428
442
 
429
443
  it "is able to raise from method calling yielding double" do
@@ -435,13 +449,13 @@ module RSpec
435
449
  end
436
450
  }.to raise_error(StandardError, "Bang")
437
451
 
438
- @double.rspec_verify
452
+ verify @double
439
453
  end
440
454
 
441
455
  it "clears expectations after verify" do
442
456
  @double.should_receive(:foobar)
443
457
  @double.foobar
444
- @double.rspec_verify
458
+ verify @double
445
459
  expect {
446
460
  @double.foobar
447
461
  }.to raise_error(RSpec::Mocks::MockExpectationError, %q|Double "test double" received unexpected message :foobar with (no args)|)
@@ -450,8 +464,8 @@ module RSpec
450
464
  it "restores objects to their original state on rspec_reset" do
451
465
  double = double("this is a double")
452
466
  double.should_receive(:blah)
453
- double.rspec_reset
454
- double.rspec_verify #should throw if reset didn't work
467
+ reset double
468
+ verify double #should throw if reset didn't work
455
469
  end
456
470
 
457
471
  it "works even after method_missing starts raising NameErrors instead of NoMethodErrors" do
@@ -477,9 +491,8 @@ module RSpec
477
491
 
478
492
  @double.should_receive(:foobar)
479
493
  @double.foobar
480
- @double.rspec_verify
494
+ verify @double
481
495
 
482
- expect { @double.foobar }.to_not raise_error(NameError)
483
496
  expect { @double.foobar }.to raise_error(RSpec::Mocks::MockExpectationError)
484
497
  end
485
498
 
@@ -489,7 +502,7 @@ module RSpec
489
502
  expect(@double.msg(:arg)).to equal(:double_value)
490
503
  expect(@double.msg).to equal(:stub_value)
491
504
  expect(@double.msg).to equal(:stub_value)
492
- @double.rspec_verify
505
+ verify @double
493
506
  end
494
507
 
495
508
  it "does not require a different signature to replace a method stub" do
@@ -498,7 +511,7 @@ module RSpec
498
511
  expect(@double.msg(:arg)).to equal(:double_value)
499
512
  expect(@double.msg).to equal(:stub_value)
500
513
  expect(@double.msg).to equal(:stub_value)
501
- @double.rspec_verify
514
+ verify @double
502
515
  end
503
516
 
504
517
  it "raises an error when a previously stubbed method has a negative expectation" do
@@ -514,21 +527,21 @@ module RSpec
514
527
  expect(non_double.msg(:arg)).to equal(:double_value)
515
528
  expect(non_double.msg).to equal(:stub_value)
516
529
  expect(non_double.msg).to equal(:stub_value)
517
- non_double.rspec_verify
530
+ verify non_double
518
531
  end
519
532
 
520
533
  it "returns the stubbed value when no new value specified" do
521
534
  @double.stub(:msg).and_return(:stub_value)
522
535
  @double.should_receive(:msg)
523
536
  expect(@double.msg).to equal(:stub_value)
524
- @double.rspec_verify
537
+ verify @double
525
538
  end
526
539
 
527
540
  it "returns the stubbed value when stubbed with args and no new value specified" do
528
541
  @double.stub(:msg).with(:arg).and_return(:stub_value)
529
542
  @double.should_receive(:msg).with(:arg)
530
543
  expect(@double.msg(:arg)).to equal(:stub_value)
531
- @double.rspec_verify
544
+ verify @double
532
545
  end
533
546
 
534
547
  it "does not mess with the stub's yielded values when also doubleed" do
@@ -536,7 +549,7 @@ module RSpec
536
549
  @double.should_receive(:yield_back).and_yield(:double_value)
537
550
  @double.yield_back{|v| expect(v).to eq :double_value }
538
551
  @double.yield_back{|v| expect(v).to eq :stub_value }
539
- @double.rspec_verify
552
+ verify @double
540
553
  end
541
554
 
542
555
  it "can yield multiple times when told to do so" do
@@ -546,7 +559,7 @@ module RSpec
546
559
  expect { |b| @double.foo(&b) }.to yield_successive_args(:first_yield, :second_yield)
547
560
  expect { |b| @double.foo(&b) }.to yield_with_args(:stub_value)
548
561
 
549
- @double.rspec_verify
562
+ verify @double
550
563
  end
551
564
 
552
565
  it "assigns stub return values" do
@@ -609,6 +622,8 @@ module RSpec
609
622
  end
610
623
 
611
624
  it "calls the block after #any_number_of_times" do
625
+ expect(RSpec).to receive(:deprecate).with("any_number_of_times", :replacement => "stub")
626
+
612
627
  @double.should_receive(:foo).any_number_of_times { add_call }
613
628
 
614
629
  (1..7).each { @double.foo }
@@ -681,7 +696,7 @@ module RSpec
681
696
  expect do
682
697
  @double.foo('baz')
683
698
  end.to raise_error
684
- @double.rspec_reset
699
+ reset @double
685
700
  end
686
701
  end
687
702
 
@@ -693,7 +708,7 @@ module RSpec
693
708
  expect do
694
709
  @double.foo(d2)
695
710
  end.to raise_error
696
- @double.rspec_reset
711
+ reset @double
697
712
  end
698
713
  end
699
714
 
@@ -705,7 +720,7 @@ module RSpec
705
720
  expect do
706
721
  @double.foo(d2)
707
722
  end.to raise_error
708
- @double.rspec_reset
723
+ reset @double
709
724
  end
710
725
  end
711
726
  end
@@ -724,11 +739,11 @@ module RSpec
724
739
  expect do
725
740
  expect(@double.foo('wrong')).to eq('baz')
726
741
  end.to raise_error(/received :foo with unexpected arguments/)
727
- @double.rspec_reset
742
+ reset @double
728
743
  end
729
744
  end
730
745
  end
731
746
  end
732
-
733
747
  end
734
748
  end
749
+