rspec-mocks 2.13.1 → 2.14.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/Changelog.md +45 -4
- data/README.md +1 -1
- data/features/argument_matchers/README.md +2 -2
- data/features/argument_matchers/explicit.feature +2 -3
- data/features/argument_matchers/general_matchers.feature +2 -2
- data/features/argument_matchers/type_matchers.feature +3 -4
- data/features/message_expectations/README.md +2 -2
- data/features/message_expectations/any_instance.feature +2 -2
- data/features/message_expectations/block_local_expectations.feature.pending +3 -3
- data/features/message_expectations/expect_message_using_expect.feature +103 -0
- data/features/message_expectations/expect_message_using_should_receive.feature +118 -0
- data/features/message_expectations/receive_counts.feature +1 -1
- data/features/method_stubs/README.md +1 -1
- data/features/method_stubs/any_instance.feature +11 -11
- data/features/method_stubs/as_null_object.feature +1 -1
- data/features/method_stubs/stub_implementation.feature +2 -2
- data/features/outside_rspec/configuration.feature +0 -20
- data/features/spies/spy_partial_mock_method.feature +34 -0
- data/features/spies/spy_pure_mock_method.feature +76 -0
- data/features/spies/spy_unstubbed_method.feature +18 -0
- data/features/step_definitions/additional_cli_steps.rb +7 -0
- data/features/test_frameworks/test_unit.feature +43 -0
- data/lib/rspec/mocks.rb +9 -34
- data/lib/rspec/mocks/any_instance/chain.rb +8 -2
- data/lib/rspec/mocks/any_instance/expectation_chain.rb +19 -16
- data/lib/rspec/mocks/any_instance/recorder.rb +6 -3
- data/lib/rspec/mocks/any_instance/stub_chain.rb +11 -11
- data/lib/rspec/mocks/any_instance/stub_chain_chain.rb +8 -10
- data/lib/rspec/mocks/argument_list_matcher.rb +7 -3
- data/lib/rspec/mocks/configuration.rb +28 -1
- data/lib/rspec/mocks/deprecation.rb +18 -0
- data/lib/rspec/mocks/error_generator.rb +60 -8
- data/lib/rspec/mocks/errors.rb +1 -1
- data/lib/rspec/mocks/example_methods.rb +39 -3
- data/lib/rspec/mocks/extensions/marshal.rb +4 -10
- data/lib/rspec/mocks/framework.rb +16 -4
- data/lib/rspec/mocks/instance_method_stasher.rb +3 -0
- data/lib/rspec/mocks/matchers/have_received.rb +93 -0
- data/lib/rspec/mocks/matchers/receive.rb +92 -0
- data/lib/rspec/mocks/message_expectation.rb +66 -129
- data/lib/rspec/mocks/method_double.rb +50 -43
- data/lib/rspec/mocks/mutate_const.rb +8 -20
- data/lib/rspec/mocks/proxy.rb +41 -25
- data/lib/rspec/mocks/proxy_for_nil.rb +36 -0
- data/lib/rspec/mocks/space.rb +64 -11
- data/lib/rspec/mocks/stub_chain.rb +51 -0
- data/lib/rspec/mocks/syntax.rb +329 -0
- data/lib/rspec/mocks/targets.rb +69 -0
- data/lib/rspec/mocks/test_double.rb +25 -4
- data/lib/rspec/mocks/version.rb +1 -1
- data/lib/spec/mocks.rb +1 -3
- data/spec/rspec/mocks/and_call_original_spec.rb +8 -0
- data/spec/rspec/mocks/and_yield_spec.rb +6 -6
- data/spec/rspec/mocks/any_instance_spec.rb +43 -31
- data/spec/rspec/mocks/any_number_of_times_spec.rb +6 -0
- data/spec/rspec/mocks/argument_expectation_spec.rb +12 -14
- data/spec/rspec/mocks/at_least_spec.rb +46 -37
- data/spec/rspec/mocks/at_most_spec.rb +12 -12
- data/spec/rspec/mocks/block_return_value_spec.rb +18 -1
- data/spec/rspec/mocks/bug_report_10260_spec.rb +1 -1
- data/spec/rspec/mocks/bug_report_10263_spec.rb +1 -1
- data/spec/rspec/mocks/bug_report_11545_spec.rb +4 -4
- data/spec/rspec/mocks/bug_report_600_spec.rb +1 -1
- data/spec/rspec/mocks/bug_report_7611_spec.rb +1 -1
- data/spec/rspec/mocks/configuration_spec.rb +124 -0
- data/spec/rspec/mocks/double_spec.rb +13 -1
- data/spec/rspec/mocks/failing_argument_matchers_spec.rb +17 -1
- data/spec/rspec/mocks/hash_excluding_matcher_spec.rb +13 -13
- data/spec/rspec/mocks/matchers/have_received_spec.rb +266 -0
- data/spec/rspec/mocks/matchers/receive_spec.rb +318 -0
- data/spec/rspec/mocks/methods_spec.rb +27 -0
- data/spec/rspec/mocks/mock_ordering_spec.rb +4 -4
- data/spec/rspec/mocks/mock_space_spec.rb +94 -39
- data/spec/rspec/mocks/mock_spec.rb +65 -50
- data/spec/rspec/mocks/multiple_return_value_spec.rb +10 -10
- data/spec/rspec/mocks/mutate_const_spec.rb +21 -1
- data/spec/rspec/mocks/nil_expectation_warning_spec.rb +10 -4
- data/spec/rspec/mocks/null_object_mock_spec.rb +11 -2
- data/spec/rspec/mocks/once_counts_spec.rb +5 -5
- data/spec/rspec/mocks/options_hash_spec.rb +4 -4
- data/spec/rspec/mocks/partial_mock_spec.rb +20 -11
- data/spec/rspec/mocks/partial_mock_using_mocks_directly_spec.rb +7 -7
- data/spec/rspec/mocks/passing_argument_matchers_spec.rb +2 -2
- data/spec/rspec/mocks/precise_counts_spec.rb +6 -6
- data/spec/rspec/mocks/serialization_spec.rb +1 -22
- data/spec/rspec/mocks/stash_spec.rb +4 -12
- data/spec/rspec/mocks/stub_implementation_spec.rb +3 -3
- data/spec/rspec/mocks/stub_spec.rb +44 -20
- data/spec/rspec/mocks/stubbed_message_expectations_spec.rb +6 -6
- data/spec/rspec/mocks/twice_counts_spec.rb +6 -6
- data/spec/rspec/mocks_spec.rb +1 -3
- data/spec/spec_helper.rb +25 -1
- metadata +86 -81
- data/features/message_expectations/expect_message.feature +0 -94
- data/lib/rspec/mocks/any_instance.rb +0 -81
- data/lib/rspec/mocks/extensions/psych.rb +0 -23
- data/lib/rspec/mocks/methods.rb +0 -155
- data/lib/rspec/mocks/serialization.rb +0 -34
- data/spec/rspec/mocks/combining_implementation_instructions_spec.rb +0 -197
@@ -26,7 +26,7 @@ module RSpec
|
|
26
26
|
expect(@double.do_something).to eq @return_values[0]
|
27
27
|
expect(@double.do_something).to eq @return_values[1]
|
28
28
|
expect(@double.do_something).to eq @return_values[2]
|
29
|
-
@double
|
29
|
+
verify @double
|
30
30
|
end
|
31
31
|
|
32
32
|
it "falls back to a previously stubbed value" do
|
@@ -40,7 +40,7 @@ module RSpec
|
|
40
40
|
it "fails when there are too few calls (if there is no stub)" do
|
41
41
|
@double.do_something
|
42
42
|
@double.do_something
|
43
|
-
expect { @double
|
43
|
+
expect { verify @double }.to raise_error
|
44
44
|
end
|
45
45
|
|
46
46
|
it "fails when there are too many calls (if there is no stub)" do
|
@@ -48,7 +48,7 @@ module RSpec
|
|
48
48
|
@double.do_something
|
49
49
|
@double.do_something
|
50
50
|
@double.do_something
|
51
|
-
expect { @double
|
51
|
+
expect { verify @double }.to raise_error
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
@@ -63,7 +63,7 @@ module RSpec
|
|
63
63
|
expect(@double.do_something).to eq @return_values[0]
|
64
64
|
expect(@double.do_something).to eq @return_values[1]
|
65
65
|
expect(@double.do_something).to eq @return_values[2]
|
66
|
-
@double
|
66
|
+
verify @double
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
@@ -77,12 +77,12 @@ module RSpec
|
|
77
77
|
expect(@double.do_something).to equal(11)
|
78
78
|
expect(@double.do_something).to equal(22)
|
79
79
|
expect(@double.do_something).to equal(22)
|
80
|
-
@double
|
80
|
+
verify @double
|
81
81
|
end
|
82
82
|
|
83
83
|
it "fails when called less than the specified number" do
|
84
84
|
expect(@double.do_something).to equal(11)
|
85
|
-
expect { @double
|
85
|
+
expect { verify @double }.to raise_error(RSpec::Mocks::MockExpectationError)
|
86
86
|
end
|
87
87
|
|
88
88
|
context "when method is stubbed too" do
|
@@ -92,12 +92,12 @@ module RSpec
|
|
92
92
|
expect(@double.do_something).to equal(11)
|
93
93
|
expect(@double.do_something).to equal(22)
|
94
94
|
expect(@double.do_something).to equal(22)
|
95
|
-
@double
|
95
|
+
verify @double
|
96
96
|
end
|
97
97
|
|
98
98
|
it "fails when called less than the specified number" do
|
99
99
|
expect(@double.do_something).to equal(11)
|
100
|
-
expect { @double
|
100
|
+
expect { verify @double }.to raise_error(RSpec::Mocks::MockExpectationError)
|
101
101
|
end
|
102
102
|
end
|
103
103
|
end
|
@@ -112,13 +112,13 @@ module RSpec
|
|
112
112
|
expect(@double.do_something).to equal(11)
|
113
113
|
expect(@double.do_something).to equal(22)
|
114
114
|
expect(@double.do_something).to equal(22)
|
115
|
-
@double
|
115
|
+
verify @double
|
116
116
|
end
|
117
117
|
|
118
118
|
it "fails when called less than the specified number" do
|
119
119
|
@double.do_something
|
120
120
|
@double.do_something
|
121
|
-
expect { @double
|
121
|
+
expect { verify @double }.to raise_error
|
122
122
|
end
|
123
123
|
|
124
124
|
it "fails fast when called greater than the specified number" do
|
@@ -12,6 +12,13 @@ class TestClass
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
+
class TestClassThatDefinesSend
|
16
|
+
C = :c
|
17
|
+
|
18
|
+
def self.send
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
15
22
|
class TestSubClass < TestClass
|
16
23
|
P = :p
|
17
24
|
end
|
@@ -46,7 +53,7 @@ module RSpec
|
|
46
53
|
after { change_const_value_to(original_const_value) }
|
47
54
|
|
48
55
|
def change_const_value_to(value)
|
49
|
-
parent_const.
|
56
|
+
parent_const.__send__(:remove_const, last_const_part)
|
50
57
|
parent_const.const_set(last_const_part, value)
|
51
58
|
end
|
52
59
|
|
@@ -143,6 +150,11 @@ module RSpec
|
|
143
150
|
end
|
144
151
|
|
145
152
|
describe "#hide_const" do
|
153
|
+
context "for a loaded constant nested in a module that redefines `send`" do
|
154
|
+
it_behaves_like "loaded constant hiding", "TestClassThatDefinesSend::C"
|
155
|
+
end
|
156
|
+
|
157
|
+
|
146
158
|
context 'for a loaded nested constant' do
|
147
159
|
it_behaves_like "loaded constant hiding", "TestClass::Nested"
|
148
160
|
end
|
@@ -205,6 +217,10 @@ module RSpec
|
|
205
217
|
end
|
206
218
|
|
207
219
|
describe "#stub_const" do
|
220
|
+
context "for a loaded constant nested in a module that redefines `send`" do
|
221
|
+
it_behaves_like "loaded constant stubbing", "TestClassThatDefinesSend::C"
|
222
|
+
end
|
223
|
+
|
208
224
|
context 'for a loaded unnested constant' do
|
209
225
|
it_behaves_like "loaded constant stubbing", "TestClass"
|
210
226
|
|
@@ -309,6 +325,10 @@ module RSpec
|
|
309
325
|
it_behaves_like 'unloaded constant stubbing', "::SomeUndefinedConst"
|
310
326
|
end
|
311
327
|
|
328
|
+
context "for an unloaded constant nested in a module that redefines `send`" do
|
329
|
+
it_behaves_like 'unloaded constant stubbing', "TestClassThatDefinesSend::SomeUndefinedConst"
|
330
|
+
end
|
331
|
+
|
312
332
|
context 'for an unloaded constant with nested name that matches a top-level constant' do
|
313
333
|
it_behaves_like "unloaded constant stubbing", "TestClass::Hash"
|
314
334
|
end
|
@@ -43,18 +43,24 @@ module RSpec
|
|
43
43
|
end
|
44
44
|
|
45
45
|
describe "#allow_message_expectations_on_nil" do
|
46
|
-
it "does not
|
47
|
-
example_group =
|
46
|
+
it "does not affect subsequent examples" do
|
47
|
+
example_group = ::RSpec::Core::ExampleGroup.describe
|
48
|
+
reporter = ::RSpec.configuration.reporter
|
48
49
|
example_group.it("when called in one example that doesn't end up setting an expectation on nil") do
|
49
50
|
allow_message_expectations_on_nil
|
50
51
|
end
|
51
|
-
example_group.it("should not effect the next
|
52
|
+
example_group.it("should not effect the next example ran") do
|
52
53
|
Kernel.should_receive(:warn)
|
53
54
|
nil.should_receive(:foo)
|
54
55
|
nil.foo
|
55
56
|
end
|
56
57
|
|
57
|
-
example_group
|
58
|
+
expect(example_group.run reporter).to eq true
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'doesnt error when marshalled' do
|
62
|
+
allow_message_expectations_on_nil
|
63
|
+
expect(Marshal.dump(nil)).to eq Marshal.dump_without_mocks(nil)
|
58
64
|
end
|
59
65
|
end
|
60
66
|
end
|
@@ -60,13 +60,13 @@ module RSpec
|
|
60
60
|
it "fails verification when explicit exception not met" do
|
61
61
|
expect {
|
62
62
|
@double.should_receive(:something)
|
63
|
-
@double
|
63
|
+
verify @double
|
64
64
|
}.to raise_error(RSpec::Mocks::MockExpectationError)
|
65
65
|
end
|
66
66
|
|
67
67
|
it "ignores unexpected methods" do
|
68
68
|
@double.random_call("a", "d", "c")
|
69
|
-
@double
|
69
|
+
verify @double
|
70
70
|
end
|
71
71
|
|
72
72
|
it "allows expected message with different args first" do
|
@@ -103,5 +103,14 @@ module RSpec
|
|
103
103
|
expect(obj).not_to be_null_object
|
104
104
|
end
|
105
105
|
end
|
106
|
+
|
107
|
+
describe "when using the :expect syntax" do
|
108
|
+
include_context "with syntax", :expect
|
109
|
+
|
110
|
+
it 'still supports null object doubles' do
|
111
|
+
obj = double("foo").as_null_object
|
112
|
+
expect(obj.foo.bar.bazz).to be(obj)
|
113
|
+
end
|
114
|
+
end
|
106
115
|
end
|
107
116
|
end
|
@@ -10,19 +10,19 @@ module RSpec
|
|
10
10
|
it "passes when called once" do
|
11
11
|
@double.should_receive(:do_something).once
|
12
12
|
@double.do_something
|
13
|
-
@double
|
13
|
+
verify @double
|
14
14
|
end
|
15
15
|
|
16
16
|
it "passes when called once with specified args" do
|
17
17
|
@double.should_receive(:do_something).once.with("a", "b", "c")
|
18
18
|
@double.do_something("a", "b", "c")
|
19
|
-
@double
|
19
|
+
verify @double
|
20
20
|
end
|
21
21
|
|
22
22
|
it "passes when called once with unspecified args" do
|
23
23
|
@double.should_receive(:do_something).once
|
24
24
|
@double.do_something("a", "b", "c")
|
25
|
-
@double
|
25
|
+
verify @double
|
26
26
|
end
|
27
27
|
|
28
28
|
it "fails when called with wrong args" do
|
@@ -30,7 +30,7 @@ module RSpec
|
|
30
30
|
expect {
|
31
31
|
@double.do_something("d", "e", "f")
|
32
32
|
}.to raise_error(RSpec::Mocks::MockExpectationError)
|
33
|
-
@double
|
33
|
+
reset @double
|
34
34
|
end
|
35
35
|
|
36
36
|
it "fails fast when called twice" do
|
@@ -44,7 +44,7 @@ module RSpec
|
|
44
44
|
it "fails when not called" do
|
45
45
|
@double.should_receive(:do_something).once
|
46
46
|
expect {
|
47
|
-
@double
|
47
|
+
verify @double
|
48
48
|
}.to raise_error(RSpec::Mocks::MockExpectationError)
|
49
49
|
end
|
50
50
|
end
|
@@ -7,10 +7,10 @@ module RSpec
|
|
7
7
|
begin
|
8
8
|
mock = RSpec::Mocks::Mock.new("a mock")
|
9
9
|
mock.should_receive(:message, :expected_from => "/path/to/blah.ext:37")
|
10
|
-
mock
|
10
|
+
verify mock
|
11
11
|
rescue Exception => e
|
12
12
|
ensure
|
13
|
-
expect(e.backtrace.to_s).to match
|
13
|
+
expect(e.backtrace.to_s).to match(/\/path\/to\/blah.ext:37/m)
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
@@ -18,7 +18,7 @@ module RSpec
|
|
18
18
|
expect {
|
19
19
|
m = RSpec::Mocks::Mock.new("a mock")
|
20
20
|
m.should_receive(:message, :message => "recebi nada")
|
21
|
-
m
|
21
|
+
verify m
|
22
22
|
}.to raise_error("recebi nada")
|
23
23
|
end
|
24
24
|
|
@@ -27,7 +27,7 @@ module RSpec
|
|
27
27
|
m = RSpec::Mocks::Mock.new("a mock")
|
28
28
|
m.stub(:message)
|
29
29
|
m.should_receive(:message, :message => "from mock")
|
30
|
-
m
|
30
|
+
verify m
|
31
31
|
}.to raise_error("from mock")
|
32
32
|
end
|
33
33
|
end
|
@@ -8,14 +8,14 @@ module RSpec
|
|
8
8
|
it "names the class in the failure message" do
|
9
9
|
object.should_receive(:foo)
|
10
10
|
expect do
|
11
|
-
object
|
11
|
+
verify object
|
12
12
|
end.to raise_error(RSpec::Mocks::MockExpectationError, /\(#<Object:.*>\).foo/)
|
13
13
|
end
|
14
14
|
|
15
15
|
it "names the class in the failure message when expectation is on class" do
|
16
16
|
Object.should_receive(:foo)
|
17
17
|
expect {
|
18
|
-
Object
|
18
|
+
verify Object
|
19
19
|
}.to raise_error(RSpec::Mocks::MockExpectationError, /<Object \(class\)>/)
|
20
20
|
end
|
21
21
|
|
@@ -31,7 +31,7 @@ module RSpec
|
|
31
31
|
object.fuhbar
|
32
32
|
}.to raise_error(
|
33
33
|
RSpec::Mocks::MockExpectationError,
|
34
|
-
/expected\: 0 times\n received\: 1 time/
|
34
|
+
/expected\: 0 times with any arguments\n received\: 1 time/
|
35
35
|
)
|
36
36
|
end
|
37
37
|
|
@@ -63,7 +63,7 @@ module RSpec
|
|
63
63
|
it "should_receive verifies method was called" do
|
64
64
|
object.should_receive(:foobar).with(:test_param).and_return(1)
|
65
65
|
expect {
|
66
|
-
object
|
66
|
+
verify object
|
67
67
|
}.to raise_error(RSpec::Mocks::MockExpectationError)
|
68
68
|
end
|
69
69
|
|
@@ -85,10 +85,10 @@ module RSpec
|
|
85
85
|
_nil = nil
|
86
86
|
_nil.should_receive(:foobar)
|
87
87
|
expect {
|
88
|
-
_nil
|
88
|
+
verify _nil
|
89
89
|
}.to raise_error(
|
90
90
|
RSpec::Mocks::MockExpectationError,
|
91
|
-
%Q|(nil).foobar(any args)\n expected: 1 time\n received: 0 times|
|
91
|
+
%Q|(nil).foobar(any args)\n expected: 1 time with any arguments\n received: 0 times with any arguments|
|
92
92
|
)
|
93
93
|
end
|
94
94
|
|
@@ -125,17 +125,26 @@ module RSpec
|
|
125
125
|
end
|
126
126
|
end
|
127
127
|
|
128
|
-
let(:
|
128
|
+
let(:wrapped_object) { Object.new }
|
129
|
+
let(:proxy) { proxy_class.new(wrapped_object) }
|
129
130
|
|
130
131
|
it 'works properly' do
|
131
|
-
|
132
|
-
expect(
|
132
|
+
proxy.should_receive(:proxied?).and_return(false)
|
133
|
+
expect(proxy).not_to be_proxied
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'does not confuse the proxy and the proxied object' do
|
137
|
+
proxy.stub(:foo).and_return(:proxy_foo)
|
138
|
+
wrapped_object.stub(:foo).and_return(:wrapped_foo)
|
139
|
+
|
140
|
+
expect(proxy.foo).to eq(:proxy_foo)
|
141
|
+
expect(wrapped_object.foo).to eq(:wrapped_foo)
|
133
142
|
end
|
134
143
|
end
|
135
144
|
|
136
145
|
describe "Partially mocking an object that defines ==, after another mock has been defined" do
|
137
146
|
before(:each) do
|
138
|
-
|
147
|
+
double("existing mock", :foo => :foo)
|
139
148
|
end
|
140
149
|
|
141
150
|
let(:klass) do
|
@@ -153,7 +162,7 @@ module RSpec
|
|
153
162
|
|
154
163
|
it "does not raise an error when stubbing the object" do
|
155
164
|
o = klass.new :foo
|
156
|
-
expect { o.stub(:bar) }.not_to raise_error
|
165
|
+
expect { o.stub(:bar) }.not_to raise_error
|
157
166
|
end
|
158
167
|
end
|
159
168
|
|
@@ -31,7 +31,7 @@ module RSpec::Mocks
|
|
31
31
|
# specify "should clear expectations on verify" do
|
32
32
|
# obj.should_receive(:msg)
|
33
33
|
# obj.msg
|
34
|
-
# obj
|
34
|
+
# verify obj
|
35
35
|
# expect {
|
36
36
|
# obj.msg
|
37
37
|
# }.to raise_error(NoMethodError)
|
@@ -40,7 +40,7 @@ module RSpec::Mocks
|
|
40
40
|
it "fails when expected message is not received" do
|
41
41
|
obj.should_receive(:msg)
|
42
42
|
expect {
|
43
|
-
obj
|
43
|
+
verify obj
|
44
44
|
}.to raise_error(RSpec::Mocks::MockExpectationError)
|
45
45
|
end
|
46
46
|
|
@@ -55,20 +55,20 @@ module RSpec::Mocks
|
|
55
55
|
it "passes when expected message is received" do
|
56
56
|
obj.should_receive(:msg)
|
57
57
|
obj.msg
|
58
|
-
obj
|
58
|
+
verify obj
|
59
59
|
end
|
60
60
|
|
61
61
|
it "passes when message is received with correct args" do
|
62
62
|
obj.should_receive(:msg).with(:correct_arg)
|
63
63
|
obj.msg(:correct_arg)
|
64
|
-
obj
|
64
|
+
verify obj
|
65
65
|
end
|
66
66
|
|
67
67
|
it "restores the original method if it existed" do
|
68
68
|
expect(obj.existing_method).to equal(:original_value)
|
69
69
|
obj.should_receive(:existing_method).and_return(:mock_value)
|
70
70
|
expect(obj.existing_method).to equal(:mock_value)
|
71
|
-
obj
|
71
|
+
verify obj
|
72
72
|
expect(obj.existing_method).to equal(:original_value)
|
73
73
|
end
|
74
74
|
|
@@ -77,7 +77,7 @@ module RSpec::Mocks
|
|
77
77
|
expect(obj.captured_by_method_missing).to eq("response generated by method missing")
|
78
78
|
obj.stub(:captured_by_method_missing) { "foo" }
|
79
79
|
expect(obj.captured_by_method_missing).to eq("foo")
|
80
|
-
obj
|
80
|
+
reset obj
|
81
81
|
expect(obj.captured_by_method_missing).to eq("response generated by method missing")
|
82
82
|
end
|
83
83
|
end
|
@@ -87,7 +87,7 @@ module RSpec::Mocks
|
|
87
87
|
expect(klass.captured_by_method_missing).to eq("response generated by method missing")
|
88
88
|
klass.stub(:captured_by_method_missing) { "foo" }
|
89
89
|
expect(klass.captured_by_method_missing).to eq("foo")
|
90
|
-
klass
|
90
|
+
reset klass
|
91
91
|
expect(klass.captured_by_method_missing).to eq("response generated by method missing")
|
92
92
|
end
|
93
93
|
end
|
@@ -2,14 +2,14 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module RSpec
|
4
4
|
module Mocks
|
5
|
-
describe
|
5
|
+
describe "Passing argument matchers" do
|
6
6
|
before(:each) do
|
7
7
|
@double = double('double')
|
8
8
|
Kernel.stub(:warn)
|
9
9
|
end
|
10
10
|
|
11
11
|
after(:each) do
|
12
|
-
@double
|
12
|
+
verify @double
|
13
13
|
end
|
14
14
|
|
15
15
|
context "handling argument matchers" do
|
@@ -12,7 +12,7 @@ module RSpec
|
|
12
12
|
@double.do_something
|
13
13
|
@double.do_something
|
14
14
|
expect {
|
15
|
-
@double
|
15
|
+
verify @double
|
16
16
|
}.to raise_error(RSpec::Mocks::MockExpectationError)
|
17
17
|
end
|
18
18
|
|
@@ -29,7 +29,7 @@ module RSpec
|
|
29
29
|
it "fails when exactly n times method is never called" do
|
30
30
|
@double.should_receive(:do_something).exactly(3).times
|
31
31
|
expect {
|
32
|
-
@double
|
32
|
+
verify @double
|
33
33
|
}.to raise_error(RSpec::Mocks::MockExpectationError)
|
34
34
|
end
|
35
35
|
|
@@ -38,13 +38,13 @@ module RSpec
|
|
38
38
|
@double.do_something
|
39
39
|
@double.do_something
|
40
40
|
@double.do_something
|
41
|
-
@double
|
41
|
+
verify @double
|
42
42
|
end
|
43
43
|
|
44
44
|
it "returns the value given by a block when the exactly once method is called" do
|
45
45
|
@double.should_receive(:to_s).exactly(:once) { "testing" }
|
46
46
|
expect(@double.to_s).to eq "testing"
|
47
|
-
@double
|
47
|
+
verify @double
|
48
48
|
end
|
49
49
|
|
50
50
|
it "passes mutiple calls with different args" do
|
@@ -52,7 +52,7 @@ module RSpec
|
|
52
52
|
@double.should_receive(:do_something).once.with(2)
|
53
53
|
@double.do_something(1)
|
54
54
|
@double.do_something(2)
|
55
|
-
@double
|
55
|
+
verify @double
|
56
56
|
end
|
57
57
|
|
58
58
|
it "passes multiple calls with different args and counts" do
|
@@ -61,7 +61,7 @@ module RSpec
|
|
61
61
|
@double.do_something(1)
|
62
62
|
@double.do_something(2)
|
63
63
|
@double.do_something(1)
|
64
|
-
@double
|
64
|
+
verify @double
|
65
65
|
end
|
66
66
|
end
|
67
67
|
end
|