rspec-mocks 2.14.6 → 2.99.0.beta1
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.
- 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
|