rspec-mocks 2.14.6 → 2.99.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/Changelog.md +20 -14
- data/lib/rspec/mocks.rb +6 -2
- data/lib/rspec/mocks/any_instance/chain.rb +28 -0
- data/lib/rspec/mocks/any_instance/expectation_chain.rb +5 -10
- data/lib/rspec/mocks/any_instance/recorder.rb +4 -1
- data/lib/rspec/mocks/any_instance/stub_chain.rb +5 -5
- data/lib/rspec/mocks/caller_filter.rb +55 -0
- data/lib/rspec/mocks/configuration.rb +19 -0
- data/lib/rspec/mocks/deprecation.rb +9 -1
- data/lib/rspec/mocks/extensions/proc.rb +63 -0
- data/lib/rspec/mocks/framework.rb +2 -0
- data/lib/rspec/mocks/matchers/receive.rb +2 -9
- data/lib/rspec/mocks/message_expectation.rb +92 -22
- data/lib/rspec/mocks/method_double.rb +2 -2
- data/lib/rspec/mocks/proxy_for_nil.rb +2 -2
- data/lib/rspec/mocks/space.rb +4 -5
- data/lib/rspec/mocks/stub_chain.rb +1 -1
- data/lib/rspec/mocks/syntax.rb +3 -3
- data/lib/rspec/mocks/targets.rb +1 -1
- data/lib/rspec/mocks/test_double.rb +8 -2
- data/lib/rspec/mocks/version.rb +1 -1
- data/spec/rspec/mocks/and_yield_spec.rb +1 -1
- data/spec/rspec/mocks/any_instance/message_chains_spec.rb +3 -3
- data/spec/rspec/mocks/any_instance_spec.rb +233 -84
- data/spec/rspec/mocks/argument_expectation_spec.rb +4 -4
- data/spec/rspec/mocks/block_return_value_spec.rb +49 -11
- data/spec/rspec/mocks/bug_report_10263_spec.rb +1 -1
- data/spec/rspec/mocks/bug_report_8165_spec.rb +2 -2
- data/spec/rspec/mocks/combining_implementation_instructions_spec.rb +4 -4
- data/spec/rspec/mocks/double_spec.rb +7 -0
- data/spec/rspec/mocks/failing_argument_matchers_spec.rb +1 -0
- data/spec/rspec/mocks/matchers/receive_spec.rb +10 -8
- data/spec/rspec/mocks/mock_space_spec.rb +10 -0
- data/spec/rspec/mocks/mock_spec.rb +20 -1
- data/spec/rspec/mocks/mutate_const_spec.rb +25 -25
- data/spec/rspec/mocks/null_object_mock_spec.rb +7 -0
- data/spec/rspec/mocks/passing_argument_matchers_spec.rb +4 -2
- data/spec/rspec/mocks/record_messages_spec.rb +4 -4
- data/spec/rspec/mocks/space_spec.rb +1 -1
- data/spec/rspec/mocks/stub_chain_spec.rb +8 -12
- data/spec/rspec/mocks/syntax_agnostic_message_matchers_spec.rb +20 -0
- data/spec/rspec/mocks/test_double_spec.rb +0 -5
- data/spec/rspec/mocks_spec.rb +14 -0
- data/spec/spec_helper.rb +27 -0
- metadata +7 -5
@@ -9,23 +9,23 @@ module RSpec
|
|
9
9
|
it "considers an object that responds to #matches? and #failure_message_for_should to be a matcher" do
|
10
10
|
obj.stub(:matches?)
|
11
11
|
obj.stub(:failure_message_for_should)
|
12
|
-
expect(argument_expectation.send(:is_matcher?, obj)).to
|
12
|
+
expect(argument_expectation.send(:is_matcher?, obj)).to be true
|
13
13
|
end
|
14
14
|
|
15
15
|
it "considers an object that responds to #matches? and #failure_message to be a matcher for backward compatibility" do
|
16
16
|
obj.stub(:matches?)
|
17
17
|
obj.stub(:failure_message)
|
18
|
-
expect(argument_expectation.send(:is_matcher?, obj)).to
|
18
|
+
expect(argument_expectation.send(:is_matcher?, obj)).to be true
|
19
19
|
end
|
20
20
|
|
21
21
|
it "does NOT consider an object that only responds to #matches? to be a matcher" do
|
22
22
|
obj.stub(:matches?)
|
23
|
-
expect(argument_expectation.send(:is_matcher?, obj)).to
|
23
|
+
expect(argument_expectation.send(:is_matcher?, obj)).to be false
|
24
24
|
end
|
25
25
|
|
26
26
|
it "does not consider a null object to be a matcher" do
|
27
27
|
obj.as_null_object
|
28
|
-
expect(argument_expectation.send(:is_matcher?, obj)).to
|
28
|
+
expect(argument_expectation.send(:is_matcher?, obj)).to be false
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
@@ -1,17 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe "a double declaration with a block handed to:" do
|
4
|
-
# The "receives a block" part is important: 1.8.7 has a bug that reports the
|
5
|
-
# wrong arity when a block receives a block.
|
6
|
-
it 'forwards all given args to the block, even when it receives a block', :unless => RUBY_VERSION.to_s == '1.8.6' do
|
7
|
-
obj = Object.new
|
8
|
-
yielded_args = []
|
9
|
-
eval("obj.stub(:foo) { |*args, &bl| yielded_args << args }")
|
10
|
-
obj.foo(1, 2, 3)
|
11
|
-
|
12
|
-
expect(yielded_args).to eq([[1, 2, 3]])
|
13
|
-
end
|
14
|
-
|
15
4
|
describe "should_receive" do
|
16
5
|
it "returns the value of executing the block" do
|
17
6
|
obj = Object.new
|
@@ -36,6 +25,17 @@ describe "a double declaration with a block handed to:" do
|
|
36
25
|
end
|
37
26
|
|
38
27
|
it "does not complain if a lambda block and mismatched arguments are passed" do
|
28
|
+
RSpec.stub :deprecate
|
29
|
+
obj = Object.new
|
30
|
+
obj.stub(:foo, &lambda { 'bar' })
|
31
|
+
expect(obj.foo(1, 2)).to eq('bar')
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'warns of deprection if argument counts dont match' do
|
35
|
+
expect(RSpec).to receive(:deprecate) do |message, opts|
|
36
|
+
expect(message).to eq "stubbing implementations with mismatched arity"
|
37
|
+
expect(opts[:call_site]).to match %r%/spec/rspec/mocks/block_return_value_spec.rb%
|
38
|
+
end
|
39
39
|
obj = Object.new
|
40
40
|
obj.stub(:foo, &lambda { 'bar' })
|
41
41
|
expect(obj.foo(1, 2)).to eq('bar')
|
@@ -50,10 +50,37 @@ describe "a double declaration with a block handed to:" do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
it "does not complain if a lambda block and mismatched arguments are passed" do
|
53
|
+
RSpec.stub :deprecate
|
54
|
+
obj = Object.new
|
55
|
+
obj.stub(:foo).with(1, 2, &lambda { 'bar' })
|
56
|
+
expect(obj.foo(1, 2)).to eq('bar')
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'warns of deprection if argument counts dont match' do
|
60
|
+
expect(RSpec).to receive(:deprecate) do |message, opts|
|
61
|
+
expect(message).to eq "stubbing implementations with mismatched arity"
|
62
|
+
expect(opts[:call_site]).to match %r%/spec/rspec/mocks/block_return_value_spec.rb%
|
63
|
+
end
|
53
64
|
obj = Object.new
|
54
65
|
obj.stub(:foo).with(1, 2, &lambda { 'bar' })
|
55
66
|
expect(obj.foo(1, 2)).to eq('bar')
|
56
67
|
end
|
68
|
+
|
69
|
+
it 'warns of deprecation when provided block but no arguments' do
|
70
|
+
expect(RSpec).to receive(:deprecate) do |message, opts|
|
71
|
+
expect(message).to match(/Using the return value of a `with` block/)
|
72
|
+
end
|
73
|
+
obj = Object.new
|
74
|
+
obj.stub(:foo).with {|x| 'baz' }.and_return('bar')
|
75
|
+
expect(obj.foo(1)).to eq('bar')
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'includes callsite in deprecation of provided block but no arguments' do
|
79
|
+
obj = Object.new
|
80
|
+
expect_deprecation_with_call_site __FILE__, __LINE__ + 1
|
81
|
+
obj.stub(:foo).with {|x| 'baz' }.and_return('bar')
|
82
|
+
expect(obj.foo(1)).to eq('bar')
|
83
|
+
end
|
57
84
|
end
|
58
85
|
|
59
86
|
%w[once twice ordered and_return].each do |method|
|
@@ -65,6 +92,17 @@ describe "a double declaration with a block handed to:" do
|
|
65
92
|
end
|
66
93
|
|
67
94
|
it "does not complain if a lambda block and mismatched arguments are passed" do
|
95
|
+
RSpec.stub :deprecate
|
96
|
+
obj = Object.new
|
97
|
+
obj.stub(:foo).send(method, &lambda { 'bar' })
|
98
|
+
expect(obj.foo(1, 2)).to eq('bar')
|
99
|
+
end
|
100
|
+
|
101
|
+
it 'warns of deprection if argument counts dont match' do
|
102
|
+
expect(RSpec).to receive(:deprecate) do |message, opts|
|
103
|
+
expect(message).to eq "stubbing implementations with mismatched arity"
|
104
|
+
expect(opts[:call_site]).to match %r%/spec/rspec/mocks/block_return_value_spec.rb%
|
105
|
+
end
|
68
106
|
obj = Object.new
|
69
107
|
obj.stub(:foo).send(method, &lambda { 'bar' })
|
70
108
|
expect(obj.foo(1, 2)).to eq('bar')
|
@@ -5,7 +5,7 @@ describe "Double" do
|
|
5
5
|
|
6
6
|
specify "when one example has an expectation inside the block passed to should_receive" do
|
7
7
|
test_double.should_receive(:msg) do |arg|
|
8
|
-
expect(arg).to
|
8
|
+
expect(arg).to be true #this call exposes the problem
|
9
9
|
end
|
10
10
|
begin
|
11
11
|
test_double.msg(false)
|
@@ -16,7 +16,7 @@ describe "An object where respond_to? is true and does not have method" do
|
|
16
16
|
obj = Object.new
|
17
17
|
obj.should_receive(:respond_to?).with(:foobar).and_return(true)
|
18
18
|
obj.should_receive(:foobar).and_return(:baz)
|
19
|
-
expect(obj.respond_to?(:foobar)).to
|
19
|
+
expect(obj.respond_to?(:foobar)).to be true
|
20
20
|
expect(obj.foobar).to eq :baz
|
21
21
|
end
|
22
22
|
|
@@ -24,7 +24,7 @@ describe "An object where respond_to? is true and does not have method" do
|
|
24
24
|
obj = double("obj")
|
25
25
|
obj.should_receive(:respond_to?).with(:foobar).and_return(true)
|
26
26
|
obj.should_receive(:foobar).and_return(:baz)
|
27
|
-
expect(obj.respond_to?(:foobar)).to
|
27
|
+
expect(obj.respond_to?(:foobar)).to be true
|
28
28
|
expect(obj.foobar).to eq :baz
|
29
29
|
end
|
30
30
|
|
@@ -21,7 +21,7 @@ module RSpec
|
|
21
21
|
expect(dbl.foo(:arg, &b)).to eq(3)
|
22
22
|
}.to yield_with_args(5)
|
23
23
|
|
24
|
-
expect(@block_called).to
|
24
|
+
expect(@block_called).to be true
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'works when passing a block to `stub`' do
|
@@ -60,7 +60,7 @@ module RSpec
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
-
it 'works when passing a block to `any_number_of_times`' do
|
63
|
+
it 'works when passing a block to `any_number_of_times`', :silence_warnings do
|
64
64
|
verify_combined_implementation do |dbl|
|
65
65
|
dbl.should_receive(:foo).any_number_of_times { @block_called = true }
|
66
66
|
end
|
@@ -117,7 +117,7 @@ module RSpec
|
|
117
117
|
expect { dbl.foo(&b) }.to raise_error("boom")
|
118
118
|
}.to yield_with_args(5)
|
119
119
|
|
120
|
-
expect(block_called).to
|
120
|
+
expect(block_called).to be true
|
121
121
|
end
|
122
122
|
|
123
123
|
it 'can combine and_yield and and_throw' do
|
@@ -138,7 +138,7 @@ module RSpec
|
|
138
138
|
expect { dbl.foo(&b) }.to throw_symbol(:bar)
|
139
139
|
}.to yield_with_args(5)
|
140
140
|
|
141
|
-
expect(block_called).to
|
141
|
+
expect(block_called).to be true
|
142
142
|
end
|
143
143
|
|
144
144
|
it 'returns `nil` from all terminal actions to discourage further configuration' do
|
@@ -21,4 +21,11 @@ describe "double" do
|
|
21
21
|
mock("TestDouble")
|
22
22
|
end
|
23
23
|
end
|
24
|
+
|
25
|
+
it 'does not get string vs symbol messages confused' do
|
26
|
+
dbl = double("foo" => 1)
|
27
|
+
allow(dbl).to receive(:foo).and_return(2)
|
28
|
+
expect(dbl.foo).to eq(2)
|
29
|
+
expect { reset dbl }.not_to raise_error
|
30
|
+
end
|
24
31
|
end
|
@@ -9,10 +9,6 @@ module RSpec
|
|
9
9
|
::RSpec::Mocks.space.verify_all
|
10
10
|
end
|
11
11
|
|
12
|
-
def reset_all
|
13
|
-
::RSpec::Mocks.space.reset_all
|
14
|
-
end
|
15
|
-
|
16
12
|
shared_examples_for "a receive matcher" do |*options|
|
17
13
|
it 'allows the caller to configure how the subject responds' do
|
18
14
|
wrapped.to receive(:foo).and_return(5)
|
@@ -63,6 +59,14 @@ module RSpec
|
|
63
59
|
wrapped.to eq(3)
|
64
60
|
}.to raise_error(UnsupportedMatcherError)
|
65
61
|
end
|
62
|
+
|
63
|
+
it 'does not get confused by messages being passed as strings and symbols' do
|
64
|
+
wrapped.to receive(:foo).with(1) { :a }
|
65
|
+
wrapped.to receive("foo").with(2) { :b }
|
66
|
+
|
67
|
+
expect(receiver.foo(1)).to eq(:a)
|
68
|
+
expect(receiver.foo(2)).to eq(:b)
|
69
|
+
end
|
66
70
|
end
|
67
71
|
|
68
72
|
shared_examples_for "an expect syntax allowance" do |*options|
|
@@ -101,8 +105,6 @@ module RSpec
|
|
101
105
|
expect {
|
102
106
|
verify_all
|
103
107
|
}.to raise_error(RSpec::Mocks::MockExpectationError)
|
104
|
-
|
105
|
-
reset_all
|
106
108
|
end
|
107
109
|
|
108
110
|
it "reports the line number of expectation of unreceived message", :pending => options.include?(:does_not_report_line_num) do
|
@@ -296,7 +298,7 @@ module RSpec
|
|
296
298
|
context "when rspec-expectations is included in the test framework first" do
|
297
299
|
before do
|
298
300
|
# the examples here assume `expect` is define in RSpec::Matchers...
|
299
|
-
expect(RSpec::Matchers.method_defined?(:expect)).to
|
301
|
+
expect(RSpec::Matchers.method_defined?(:expect)).to be true
|
300
302
|
end
|
301
303
|
|
302
304
|
let(:framework) do
|
@@ -318,7 +320,7 @@ module RSpec
|
|
318
320
|
context "when rspec-expectations is included in the test framework last" do
|
319
321
|
before do
|
320
322
|
# the examples here assume `expect` is define in RSpec::Matchers...
|
321
|
-
expect(RSpec::Matchers.method_defined?(:expect)).to
|
323
|
+
expect(RSpec::Matchers.method_defined?(:expect)).to be true
|
322
324
|
end
|
323
325
|
|
324
326
|
let(:framework) do
|
@@ -97,6 +97,16 @@ module RSpec
|
|
97
97
|
expect(r1).to be(r2)
|
98
98
|
expect(r1).not_to be(r3)
|
99
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)
|
109
|
+
end
|
100
110
|
end
|
101
111
|
end
|
102
112
|
end
|
@@ -122,6 +122,25 @@ module RSpec
|
|
122
122
|
verify @double
|
123
123
|
end
|
124
124
|
|
125
|
+
it 'does not get confused when `should_not_received` is used with a string and symbol message' do
|
126
|
+
@double.stub(:foo) { 3 }
|
127
|
+
@double.should_not_receive(:foo).with(1)
|
128
|
+
@double.should_not_receive("foo").with(2)
|
129
|
+
|
130
|
+
expect(@double.foo).to eq(3)
|
131
|
+
verify @double
|
132
|
+
end
|
133
|
+
|
134
|
+
it 'does not get confused when `should_received` is used with a string and symbol message' do
|
135
|
+
@double.should_receive(:foo).with(1)
|
136
|
+
@double.should_receive("foo").with(2)
|
137
|
+
|
138
|
+
@double.foo(1)
|
139
|
+
@double.foo(2)
|
140
|
+
|
141
|
+
verify @double
|
142
|
+
end
|
143
|
+
|
125
144
|
it "allows block to calculate return values" do
|
126
145
|
@double.should_receive(:something).with("a","b","c").and_return { |a,b,c| c+b+a }
|
127
146
|
expect(@double.something("a","b","c")).to eq "cba"
|
@@ -215,7 +234,7 @@ module RSpec
|
|
215
234
|
|
216
235
|
it "fails if expectation block fails" do
|
217
236
|
@double.should_receive(:something) do |bool|
|
218
|
-
expect(bool).to
|
237
|
+
expect(bool).to be true
|
219
238
|
end
|
220
239
|
|
221
240
|
expect {
|
@@ -78,18 +78,18 @@ module RSpec
|
|
78
78
|
|
79
79
|
shared_examples_for "loaded constant hiding" do |const_name|
|
80
80
|
before do
|
81
|
-
expect(recursive_const_defined?(const_name)).to
|
81
|
+
expect(recursive_const_defined?(const_name)).to be_truthy
|
82
82
|
end
|
83
83
|
|
84
84
|
it 'allows it to be hidden' do
|
85
85
|
hide_const(const_name)
|
86
|
-
expect(recursive_const_defined?(const_name)).to
|
86
|
+
expect(recursive_const_defined?(const_name)).to be_falsey
|
87
87
|
end
|
88
88
|
|
89
89
|
it 'resets the constant when rspec clear its mocks' do
|
90
90
|
hide_const(const_name)
|
91
91
|
reset_rspec_mocks
|
92
|
-
expect(recursive_const_defined?(const_name)).to
|
92
|
+
expect(recursive_const_defined?(const_name)).to be_truthy
|
93
93
|
end
|
94
94
|
|
95
95
|
it 'returns nil' do
|
@@ -101,7 +101,7 @@ module RSpec
|
|
101
101
|
include_context "constant example methods", const_name
|
102
102
|
|
103
103
|
before do
|
104
|
-
expect(recursive_const_defined?(const_name)).to
|
104
|
+
expect(recursive_const_defined?(const_name)).to be_falsey
|
105
105
|
end
|
106
106
|
|
107
107
|
it 'allows it to be stubbed' do
|
@@ -112,7 +112,7 @@ module RSpec
|
|
112
112
|
it 'removes the constant when rspec clears its mocks' do
|
113
113
|
stub_const(const_name, 7)
|
114
114
|
reset_rspec_mocks
|
115
|
-
expect(recursive_const_defined?(const_name)).to
|
115
|
+
expect(recursive_const_defined?(const_name)).to be_falsey
|
116
116
|
end
|
117
117
|
|
118
118
|
it 'returns the stubbed value' do
|
@@ -130,18 +130,18 @@ module RSpec
|
|
130
130
|
include_context "constant example methods", const_name
|
131
131
|
|
132
132
|
before do
|
133
|
-
expect(recursive_const_defined?(const_name)).to
|
133
|
+
expect(recursive_const_defined?(const_name)).to be_falsey
|
134
134
|
end
|
135
135
|
|
136
136
|
it 'allows it to be hidden, though the operation has no effect' do
|
137
137
|
hide_const(const_name)
|
138
|
-
expect(recursive_const_defined?(const_name)).to
|
138
|
+
expect(recursive_const_defined?(const_name)).to be_falsey
|
139
139
|
end
|
140
140
|
|
141
141
|
it 'remains undefined after rspec clears its mocks' do
|
142
142
|
hide_const(const_name)
|
143
143
|
reset_rspec_mocks
|
144
|
-
expect(recursive_const_defined?(const_name)).to
|
144
|
+
expect(recursive_const_defined?(const_name)).to be_falsey
|
145
145
|
end
|
146
146
|
|
147
147
|
it 'returns nil' do
|
@@ -206,7 +206,7 @@ module RSpec
|
|
206
206
|
orig_value = TOP_LEVEL_VALUE_CONST
|
207
207
|
|
208
208
|
hide_const("TOP_LEVEL_VALUE_CONST")
|
209
|
-
expect(recursive_const_defined?("TOP_LEVEL_VALUE_CONST")).to
|
209
|
+
expect(recursive_const_defined?("TOP_LEVEL_VALUE_CONST")).to be_falsey
|
210
210
|
|
211
211
|
stub_const("TOP_LEVEL_VALUE_CONST", 12345)
|
212
212
|
expect(TOP_LEVEL_VALUE_CONST).to eq 12345
|
@@ -247,8 +247,8 @@ module RSpec
|
|
247
247
|
stub = Module.new
|
248
248
|
stub_const("TestSubClass", stub, :transfer_nested_constants => true)
|
249
249
|
expect(stub::P).to eq(:p)
|
250
|
-
expect(defined?(stub::M)).to
|
251
|
-
expect(defined?(stub::N)).to
|
250
|
+
expect(defined?(stub::M)).to be_falsey
|
251
|
+
expect(defined?(stub::N)).to be_falsey
|
252
252
|
end
|
253
253
|
|
254
254
|
it 'raises an error when asked to transfer a nested inherited constant' do
|
@@ -266,7 +266,7 @@ module RSpec
|
|
266
266
|
stub_const("TestClass", stub, :transfer_nested_constants => [:M, :N])
|
267
267
|
expect(stub::M).to eq(:m)
|
268
268
|
expect(stub::N).to eq(:n)
|
269
|
-
expect(defined?(stub::Nested)).to
|
269
|
+
expect(defined?(stub::Nested)).to be_falsey
|
270
270
|
end
|
271
271
|
|
272
272
|
it 'raises an error if asked to transfer nested constants but given an object that does not support them' do
|
@@ -302,7 +302,7 @@ module RSpec
|
|
302
302
|
|
303
303
|
it 'raises an error if asked to transfer a nested constant that is not defined' do
|
304
304
|
original_tc = TestClass
|
305
|
-
expect(defined?(TestClass::V)).to
|
305
|
+
expect(defined?(TestClass::V)).to be_falsey
|
306
306
|
stub = Module.new
|
307
307
|
|
308
308
|
expect {
|
@@ -345,10 +345,10 @@ module RSpec
|
|
345
345
|
it_behaves_like "unloaded constant stubbing", "X::Y"
|
346
346
|
|
347
347
|
it 'removes the root constant when rspec clears its mocks' do
|
348
|
-
expect(defined?(X)).to
|
348
|
+
expect(defined?(X)).to be_falsey
|
349
349
|
stub_const("X::Y", 7)
|
350
350
|
reset_rspec_mocks
|
351
|
-
expect(defined?(X)).to
|
351
|
+
expect(defined?(X)).to be_falsey
|
352
352
|
end
|
353
353
|
end
|
354
354
|
|
@@ -356,10 +356,10 @@ module RSpec
|
|
356
356
|
it_behaves_like "unloaded constant stubbing", "X::Y::Z"
|
357
357
|
|
358
358
|
it 'removes the root constant when rspec clears its mocks' do
|
359
|
-
expect(defined?(X)).to
|
359
|
+
expect(defined?(X)).to be_falsey
|
360
360
|
stub_const("X::Y::Z", 7)
|
361
361
|
reset_rspec_mocks
|
362
|
-
expect(defined?(X)).to
|
362
|
+
expect(defined?(X)).to be_falsey
|
363
363
|
end
|
364
364
|
end
|
365
365
|
|
@@ -367,12 +367,12 @@ module RSpec
|
|
367
367
|
it_behaves_like "unloaded constant stubbing", "TestClass::X"
|
368
368
|
|
369
369
|
it 'removes the unloaded constant but leaves the loaded constant when rspec resets its mocks' do
|
370
|
-
expect(defined?(TestClass)).to
|
371
|
-
expect(defined?(TestClass::X)).to
|
370
|
+
expect(defined?(TestClass)).to be_truthy
|
371
|
+
expect(defined?(TestClass::X)).to be_falsey
|
372
372
|
stub_const("TestClass::X", 7)
|
373
373
|
reset_rspec_mocks
|
374
|
-
expect(defined?(TestClass)).to
|
375
|
-
expect(defined?(TestClass::X)).to
|
374
|
+
expect(defined?(TestClass)).to be_truthy
|
375
|
+
expect(defined?(TestClass::X)).to be_falsey
|
376
376
|
end
|
377
377
|
|
378
378
|
it 'raises a helpful error if it cannot be stubbed due to an intermediary constant that is not a module' do
|
@@ -385,12 +385,12 @@ module RSpec
|
|
385
385
|
it_behaves_like "unloaded constant stubbing", "TestClass::Nested::NestedEvenMore::X::Y::Z"
|
386
386
|
|
387
387
|
it 'removes the first unloaded constant but leaves the loaded nested constant when rspec resets its mocks' do
|
388
|
-
expect(defined?(TestClass::Nested::NestedEvenMore)).to
|
389
|
-
expect(defined?(TestClass::Nested::NestedEvenMore::X)).to
|
388
|
+
expect(defined?(TestClass::Nested::NestedEvenMore)).to be_truthy
|
389
|
+
expect(defined?(TestClass::Nested::NestedEvenMore::X)).to be_falsey
|
390
390
|
stub_const("TestClass::Nested::NestedEvenMore::X::Y::Z", 7)
|
391
391
|
reset_rspec_mocks
|
392
|
-
expect(defined?(TestClass::Nested::NestedEvenMore)).to
|
393
|
-
expect(defined?(TestClass::Nested::NestedEvenMore::X)).to
|
392
|
+
expect(defined?(TestClass::Nested::NestedEvenMore)).to be_truthy
|
393
|
+
expect(defined?(TestClass::Nested::NestedEvenMore::X)).to be_falsey
|
394
394
|
end
|
395
395
|
end
|
396
396
|
end
|