rspec-mocks 2.12.1 → 2.12.2

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 (56) hide show
  1. data/Changelog.md +17 -0
  2. data/lib/rspec/mocks.rb +8 -0
  3. data/lib/rspec/mocks/message_expectation.rb +6 -11
  4. data/lib/rspec/mocks/method_double.rb +19 -2
  5. data/lib/rspec/mocks/mutate_const.rb +1 -1
  6. data/lib/rspec/mocks/proxy.rb +1 -1
  7. data/lib/rspec/mocks/version.rb +1 -1
  8. data/lib/spec/mocks.rb +4 -0
  9. data/spec/rspec/mocks/and_call_original_spec.rb +22 -0
  10. data/spec/rspec/mocks/and_yield_spec.rb +7 -7
  11. data/spec/rspec/mocks/any_instance/message_chains_spec.rb +6 -6
  12. data/spec/rspec/mocks/any_instance_spec.rb +94 -94
  13. data/spec/rspec/mocks/any_number_of_times_spec.rb +2 -2
  14. data/spec/rspec/mocks/argument_expectation_spec.rb +3 -3
  15. data/spec/rspec/mocks/at_least_spec.rb +15 -15
  16. data/spec/rspec/mocks/at_most_spec.rb +7 -7
  17. data/spec/rspec/mocks/block_return_value_spec.rb +6 -6
  18. data/spec/rspec/mocks/bug_report_10260_spec.rb +1 -1
  19. data/spec/rspec/mocks/bug_report_10263_spec.rb +6 -4
  20. data/spec/rspec/mocks/bug_report_11545_spec.rb +1 -1
  21. data/spec/rspec/mocks/bug_report_600_spec.rb +1 -1
  22. data/spec/rspec/mocks/bug_report_7611_spec.rb +1 -1
  23. data/spec/rspec/mocks/bug_report_8165_spec.rb +4 -4
  24. data/spec/rspec/mocks/bug_report_830_spec.rb +2 -2
  25. data/spec/rspec/mocks/bug_report_957_spec.rb +2 -2
  26. data/spec/rspec/mocks/configuration_spec.rb +4 -4
  27. data/spec/rspec/mocks/double_spec.rb +1 -1
  28. data/spec/rspec/mocks/failing_argument_matchers_spec.rb +1 -1
  29. data/spec/rspec/mocks/hash_excluding_matcher_spec.rb +13 -13
  30. data/spec/rspec/mocks/hash_including_matcher_spec.rb +30 -30
  31. data/spec/rspec/mocks/mock_ordering_spec.rb +8 -8
  32. data/spec/rspec/mocks/mock_space_spec.rb +4 -4
  33. data/spec/rspec/mocks/mock_spec.rb +94 -90
  34. data/spec/rspec/mocks/multiple_return_value_spec.rb +21 -21
  35. data/spec/rspec/mocks/mutate_const_spec.rb +112 -102
  36. data/spec/rspec/mocks/nil_expectation_warning_spec.rb +6 -12
  37. data/spec/rspec/mocks/null_object_mock_spec.rb +12 -12
  38. data/spec/rspec/mocks/once_counts_spec.rb +7 -7
  39. data/spec/rspec/mocks/options_hash_spec.rb +6 -6
  40. data/spec/rspec/mocks/partial_mock_spec.rb +15 -15
  41. data/spec/rspec/mocks/partial_mock_using_mocks_directly_spec.rb +17 -17
  42. data/spec/rspec/mocks/passing_argument_matchers_spec.rb +6 -6
  43. data/spec/rspec/mocks/precise_counts_spec.rb +7 -7
  44. data/spec/rspec/mocks/record_messages_spec.rb +4 -4
  45. data/spec/rspec/mocks/serialization_spec.rb +3 -3
  46. data/spec/rspec/mocks/stash_spec.rb +1 -1
  47. data/spec/rspec/mocks/stub_chain_spec.rb +22 -22
  48. data/spec/rspec/mocks/stub_implementation_spec.rb +10 -10
  49. data/spec/rspec/mocks/stub_spec.rb +50 -31
  50. data/spec/rspec/mocks/stubbed_message_expectations_spec.rb +3 -3
  51. data/spec/rspec/mocks/test_double_spec.rb +3 -3
  52. data/spec/rspec/mocks/to_ary_spec.rb +7 -7
  53. data/spec/rspec/mocks/twice_counts_spec.rb +8 -8
  54. data/spec/rspec/mocks_spec.rb +13 -4
  55. data/spec/spec_helper.rb +4 -0
  56. metadata +5 -5
@@ -11,7 +11,6 @@ end
11
11
 
12
12
  module RSpec
13
13
  module Mocks
14
-
15
14
  describe "an expectation set on nil" do
16
15
  it "issues a warning with file and line number information" do
17
16
  expected_warning = %r%An expectation of :foo was set on nil. Called from #{__FILE__}:#{__LINE__+3}(:in .+)?. Use allow_message_expectations_on_nil to disable warnings.%
@@ -20,27 +19,24 @@ module RSpec
20
19
  nil.should_receive(:foo)
21
20
  nil.foo
22
21
  end
23
-
22
+
24
23
  it "issues a warning when the expectation is negative" do
25
24
  Kernel.should_receive(:warn)
26
25
 
27
26
  nil.should_not_receive(:foo)
28
27
  end
29
-
28
+
30
29
  it "does not issue a warning when expectations are set to be allowed" do
31
30
  allow_message_expectations_on_nil
32
31
  Kernel.should_not_receive(:warn)
33
-
32
+
34
33
  nil.should_receive(:foo)
35
34
  nil.should_not_receive(:bar)
36
35
  nil.foo
37
36
  end
38
-
39
37
  end
40
-
41
- describe "#allow_message_expectations_on_nil" do
42
-
43
38
 
39
+ describe "#allow_message_expectations_on_nil" do
44
40
  it "does not effect subsequent examples" do
45
41
  example_group = empty_example_group
46
42
  example_group.it("when called in one example that doesn't end up setting an expectation on nil") do
@@ -51,12 +47,10 @@ module RSpec
51
47
  nil.should_receive(:foo)
52
48
  nil.foo
53
49
  end
54
-
50
+
55
51
  example_group
56
-
57
52
  end
58
-
59
53
  end
60
-
61
54
  end
62
55
  end
56
+
@@ -8,12 +8,12 @@ module RSpec
8
8
  end
9
9
 
10
10
  it "says it does not respond to messages it doesn't understand" do
11
- @double.should_not respond_to(:foo)
11
+ expect(@double).not_to respond_to(:foo)
12
12
  end
13
13
 
14
14
  it "says it responds to messages it does understand" do
15
15
  @double.stub(:foo)
16
- @double.should respond_to(:foo)
16
+ expect(@double).to respond_to(:foo)
17
17
  end
18
18
 
19
19
  it "raises an error when interpolated in a string as an integer" do
@@ -33,12 +33,12 @@ module RSpec
33
33
  end
34
34
 
35
35
  it "says it responds to everything" do
36
- @double.should respond_to(:any_message_it_gets)
36
+ expect(@double).to respond_to(:any_message_it_gets)
37
37
  end
38
38
 
39
39
  it "allows explicit stubs" do
40
40
  @double.stub(:foo) { "bar" }
41
- @double.foo.should eq("bar")
41
+ expect(@double.foo).to eq("bar")
42
42
  end
43
43
 
44
44
  it "allows explicit expectation" do
@@ -48,20 +48,20 @@ module RSpec
48
48
 
49
49
  it 'continues to return self from an explicit expectation' do
50
50
  @double.should_receive(:bar)
51
- @double.foo.bar.should be(@double)
51
+ expect(@double.foo.bar).to be(@double)
52
52
  end
53
53
 
54
54
  it 'returns an explicitly stubbed value from an expectation with no implementation' do
55
55
  @double.stub(:foo => "bar")
56
56
  @double.should_receive(:foo)
57
- @double.foo.should eq("bar")
57
+ expect(@double.foo).to eq("bar")
58
58
  end
59
59
 
60
60
  it "fails verification when explicit exception not met" do
61
- lambda do
61
+ expect {
62
62
  @double.should_receive(:something)
63
63
  @double.rspec_verify
64
- end.should raise_error(RSpec::Mocks::MockExpectationError)
64
+ }.to raise_error(RSpec::Mocks::MockExpectationError)
65
65
  end
66
66
 
67
67
  it "ignores unexpected methods" do
@@ -86,21 +86,21 @@ module RSpec
86
86
  # @double.to_int.to_int.to_int...etc until it gets an integer,
87
87
  # and thus gets stuck in an infinite loop unless our double
88
88
  # returns an int value from #to_int.
89
- ("%i" % @double).should eq("0")
89
+ expect(("%i" % @double)).to eq("0")
90
90
  end
91
91
  end
92
-
92
+
93
93
  describe "#as_null_object" do
94
94
  it "sets the object to null_object" do
95
95
  obj = double('anything').as_null_object
96
- obj.should be_null_object
96
+ expect(obj).to be_null_object
97
97
  end
98
98
  end
99
99
 
100
100
  describe "#null_object?" do
101
101
  it "defaults to false" do
102
102
  obj = double('anything')
103
- obj.should_not be_null_object
103
+ expect(obj).not_to be_null_object
104
104
  end
105
105
  end
106
106
  end
@@ -27,25 +27,25 @@ module RSpec
27
27
 
28
28
  it "fails when called with wrong args" do
29
29
  @double.should_receive(:do_something).once.with("a", "b", "c")
30
- lambda do
30
+ expect {
31
31
  @double.do_something("d", "e", "f")
32
- end.should raise_error(RSpec::Mocks::MockExpectationError)
32
+ }.to raise_error(RSpec::Mocks::MockExpectationError)
33
33
  @double.rspec_reset
34
34
  end
35
35
 
36
36
  it "fails fast when called twice" do
37
37
  @double.should_receive(:do_something).once
38
38
  @double.do_something
39
- lambda do
39
+ expect {
40
40
  @double.do_something
41
- end.should raise_error(RSpec::Mocks::MockExpectationError)
41
+ }.to raise_error(RSpec::Mocks::MockExpectationError)
42
42
  end
43
-
43
+
44
44
  it "fails when not called" do
45
45
  @double.should_receive(:do_something).once
46
- lambda do
46
+ expect {
47
47
  @double.rspec_verify
48
- end.should raise_error(RSpec::Mocks::MockExpectationError)
48
+ }.to raise_error(RSpec::Mocks::MockExpectationError)
49
49
  end
50
50
  end
51
51
  end
@@ -10,25 +10,25 @@ module RSpec
10
10
  mock.rspec_verify
11
11
  rescue Exception => e
12
12
  ensure
13
- e.backtrace.to_s.should =~ /\/path\/to\/blah.ext:37/m
13
+ expect(e.backtrace.to_s).to match /\/path\/to\/blah.ext:37/m
14
14
  end
15
15
  end
16
16
 
17
17
  it "uses the message supplied with :message" do
18
- lambda {
18
+ expect {
19
19
  m = RSpec::Mocks::Mock.new("a mock")
20
20
  m.should_receive(:message, :message => "recebi nada")
21
21
  m.rspec_verify
22
- }.should raise_error("recebi nada")
22
+ }.to raise_error("recebi nada")
23
23
  end
24
-
24
+
25
25
  it "uses the message supplied with :message after a similar stub" do
26
- lambda {
26
+ expect {
27
27
  m = RSpec::Mocks::Mock.new("a mock")
28
28
  m.stub(:message)
29
29
  m.should_receive(:message, :message => "from mock")
30
30
  m.rspec_verify
31
- }.should raise_error("from mock")
31
+ }.to raise_error("from mock")
32
32
  end
33
33
  end
34
34
  end
@@ -14,9 +14,9 @@ module RSpec
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
- lambda do
17
+ expect {
18
18
  Object.rspec_verify
19
- end.should raise_error(RSpec::Mocks::MockExpectationError, /<Object \(class\)>/)
19
+ }.to raise_error(RSpec::Mocks::MockExpectationError, /<Object \(class\)>/)
20
20
  end
21
21
 
22
22
  it "does not conflict with @options in the object" do
@@ -36,35 +36,35 @@ module RSpec
36
36
  end
37
37
 
38
38
  it "should_not_receive returns a negative message expectation" do
39
- object.should_not_receive(:foobar).should be_kind_of(RSpec::Mocks::NegativeMessageExpectation)
39
+ expect(object.should_not_receive(:foobar)).to be_kind_of(RSpec::Mocks::NegativeMessageExpectation)
40
40
  end
41
41
 
42
42
  it "should_receive mocks out the method" do
43
43
  object.should_receive(:foobar).with(:test_param).and_return(1)
44
- object.foobar(:test_param).should equal(1)
44
+ expect(object.foobar(:test_param)).to equal(1)
45
45
  end
46
46
 
47
47
  it "should_receive handles a hash" do
48
48
  object.should_receive(:foobar).with(:key => "value").and_return(1)
49
- object.foobar(:key => "value").should equal(1)
49
+ expect(object.foobar(:key => "value")).to equal(1)
50
50
  end
51
51
 
52
52
  it "should_receive handles an inner hash" do
53
53
  hash = {:a => {:key => "value"}}
54
54
  object.should_receive(:foobar).with(:key => "value").and_return(1)
55
- object.foobar(hash[:a]).should equal(1)
55
+ expect(object.foobar(hash[:a])).to equal(1)
56
56
  end
57
57
 
58
58
  it "should_receive returns a message expectation" do
59
- object.should_receive(:foobar).should be_kind_of(RSpec::Mocks::MessageExpectation)
59
+ expect(object.should_receive(:foobar)).to be_kind_of(RSpec::Mocks::MessageExpectation)
60
60
  object.foobar
61
61
  end
62
62
 
63
63
  it "should_receive verifies method was called" do
64
64
  object.should_receive(:foobar).with(:test_param).and_return(1)
65
- lambda do
65
+ expect {
66
66
  object.rspec_verify
67
- end.should raise_error(RSpec::Mocks::MockExpectationError)
67
+ }.to raise_error(RSpec::Mocks::MockExpectationError)
68
68
  end
69
69
 
70
70
  it "should_receive also takes a String argument" do
@@ -74,9 +74,9 @@ module RSpec
74
74
 
75
75
  it "should_not_receive also takes a String argument" do
76
76
  object.should_not_receive('foobar')
77
- lambda do
77
+ expect {
78
78
  object.foobar
79
- end.should raise_error(RSpec::Mocks::MockExpectationError)
79
+ }.to raise_error(RSpec::Mocks::MockExpectationError)
80
80
  end
81
81
 
82
82
  it "uses reports nil in the error message" do
@@ -129,7 +129,7 @@ module RSpec
129
129
 
130
130
  it 'works properly' do
131
131
  instance.should_receive(:proxied?).and_return(false)
132
- instance.should_not be_proxied
132
+ expect(instance).not_to be_proxied
133
133
  end
134
134
  end
135
135
 
@@ -175,19 +175,19 @@ module RSpec
175
175
 
176
176
  it 'keeps public methods public' do
177
177
  object.should_receive(:public_method)
178
- object.public_methods.should include_method(:public_method)
178
+ expect(object.public_methods).to include_method(:public_method)
179
179
  object.public_method
180
180
  end
181
181
 
182
182
  it 'keeps private methods private' do
183
183
  object.should_receive(:private_method)
184
- object.private_methods.should include_method(:private_method)
184
+ expect(object.private_methods).to include_method(:private_method)
185
185
  object.public_method
186
186
  end
187
187
 
188
188
  it 'keeps protected methods protected' do
189
189
  object.should_receive(:protected_method)
190
- object.protected_methods.should include_method(:protected_method)
190
+ expect(object.protected_methods).to include_method(:protected_method)
191
191
  object.public_method
192
192
  end
193
193
 
@@ -32,23 +32,23 @@ module RSpec::Mocks
32
32
  # obj.should_receive(:msg)
33
33
  # obj.msg
34
34
  # obj.rspec_verify
35
- # lambda do
35
+ # expect {
36
36
  # obj.msg
37
- # end.should raise_error(NoMethodError)
38
- #
37
+ # }.to raise_error(NoMethodError)
38
+ #
39
39
  # end
40
40
  it "fails when expected message is not received" do
41
41
  obj.should_receive(:msg)
42
- lambda do
42
+ expect {
43
43
  obj.rspec_verify
44
- end.should raise_error(RSpec::Mocks::MockExpectationError)
44
+ }.to raise_error(RSpec::Mocks::MockExpectationError)
45
45
  end
46
46
 
47
47
  it "fails when message is received with incorrect args" do
48
48
  obj.should_receive(:msg).with(:correct_arg)
49
- lambda do
49
+ expect {
50
50
  obj.msg(:incorrect_arg)
51
- end.should raise_error(RSpec::Mocks::MockExpectationError)
51
+ }.to raise_error(RSpec::Mocks::MockExpectationError)
52
52
  obj.msg(:correct_arg)
53
53
  end
54
54
 
@@ -65,30 +65,30 @@ module RSpec::Mocks
65
65
  end
66
66
 
67
67
  it "restores the original method if it existed" do
68
- obj.existing_method.should equal(:original_value)
68
+ expect(obj.existing_method).to equal(:original_value)
69
69
  obj.should_receive(:existing_method).and_return(:mock_value)
70
- obj.existing_method.should equal(:mock_value)
70
+ expect(obj.existing_method).to equal(:mock_value)
71
71
  obj.rspec_verify
72
- obj.existing_method.should equal(:original_value)
72
+ expect(obj.existing_method).to equal(:original_value)
73
73
  end
74
74
 
75
75
  context "with an instance method handled by method_missing" do
76
76
  it "restores the original behavior" do
77
- obj.captured_by_method_missing.should eq("response generated by method missing")
77
+ expect(obj.captured_by_method_missing).to eq("response generated by method missing")
78
78
  obj.stub(:captured_by_method_missing) { "foo" }
79
- obj.captured_by_method_missing.should eq("foo")
79
+ expect(obj.captured_by_method_missing).to eq("foo")
80
80
  obj.rspec_reset
81
- obj.captured_by_method_missing.should eq("response generated by method missing")
81
+ expect(obj.captured_by_method_missing).to eq("response generated by method missing")
82
82
  end
83
83
  end
84
84
 
85
- context "with a class method handled by method_missing" do
85
+ context "with a class method handled by method_missing" do
86
86
  it "restores the original behavior" do
87
- klass.captured_by_method_missing.should eq("response generated by method missing")
87
+ expect(klass.captured_by_method_missing).to eq("response generated by method missing")
88
88
  klass.stub(:captured_by_method_missing) { "foo" }
89
- klass.captured_by_method_missing.should eq("foo")
89
+ expect(klass.captured_by_method_missing).to eq("foo")
90
90
  klass.rspec_reset
91
- klass.captured_by_method_missing.should eq("response generated by method missing")
91
+ expect(klass.captured_by_method_missing).to eq("response generated by method missing")
92
92
  end
93
93
  end
94
94
  end
@@ -87,11 +87,11 @@ module RSpec
87
87
  context "handling block matchers" do
88
88
  it "matches arguments against RSpec expectations" do
89
89
  @double.should_receive(:random_call).with {|arg1, arg2, arr, *rest|
90
- arg1.should eq 5
91
- arg2.should have_at_least(3).characters
92
- arg2.should have_at_most(10).characters
93
- arr.map {|i| i * 2}.should eq [2,4,6]
94
- rest.should eq [:fee, "fi", 4]
90
+ expect(arg1).to eq 5
91
+ expect(arg2).to have_at_least(3).characters
92
+ expect(arg2).to have_at_most(10).characters
93
+ expect(arr.map {|i| i * 2}).to eq [2,4,6]
94
+ expect(rest).to eq [:fee, "fi", 4]
95
95
  }
96
96
  @double.random_call 5, "hello", [1,2,3], :fee, "fi", 4
97
97
  end
@@ -100,7 +100,7 @@ module RSpec
100
100
  eval_count = 0
101
101
  @double.should_receive(:msg).with {|a| eval_count += 1}
102
102
  @double.msg(:ignore)
103
- eval_count.should eq(1)
103
+ expect(eval_count).to eq(1)
104
104
  end
105
105
  end
106
106
 
@@ -11,9 +11,9 @@ module RSpec
11
11
  @double.should_receive(:do_something).exactly(3).times
12
12
  @double.do_something
13
13
  @double.do_something
14
- lambda do
14
+ expect {
15
15
  @double.rspec_verify
16
- end.should raise_error(RSpec::Mocks::MockExpectationError)
16
+ }.to raise_error(RSpec::Mocks::MockExpectationError)
17
17
  end
18
18
 
19
19
  it "fails fast when exactly n times method is called more than n times" do
@@ -21,16 +21,16 @@ module RSpec
21
21
  @double.do_something
22
22
  @double.do_something
23
23
  @double.do_something
24
- lambda do
24
+ expect {
25
25
  @double.do_something
26
- end.should raise_error(RSpec::Mocks::MockExpectationError)
26
+ }.to raise_error(RSpec::Mocks::MockExpectationError)
27
27
  end
28
28
 
29
29
  it "fails when exactly n times method is never called" do
30
30
  @double.should_receive(:do_something).exactly(3).times
31
- lambda do
31
+ expect {
32
32
  @double.rspec_verify
33
- end.should raise_error(RSpec::Mocks::MockExpectationError)
33
+ }.to raise_error(RSpec::Mocks::MockExpectationError)
34
34
  end
35
35
 
36
36
  it "passes if exactly n times method is called exactly n times" do
@@ -43,7 +43,7 @@ module RSpec
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
- @double.to_s.should eq "testing"
46
+ expect(@double.to_s).to eq "testing"
47
47
  @double.rspec_verify
48
48
  end
49
49
 
@@ -7,19 +7,19 @@ module RSpec
7
7
  @mock = double("mock").as_null_object
8
8
  end
9
9
  it "answers false for received_message? when no messages received" do
10
- @mock.received_message?(:message).should be_false
10
+ expect(@mock.received_message?(:message)).to be_false
11
11
  end
12
12
  it "answers true for received_message? when message received" do
13
13
  @mock.message
14
- @mock.received_message?(:message).should be_true
14
+ expect(@mock.received_message?(:message)).to be_true
15
15
  end
16
16
  it "answers true for received_message? when message received with correct args" do
17
17
  @mock.message 1,2,3
18
- @mock.received_message?(:message, 1,2,3).should be_true
18
+ expect(@mock.received_message?(:message, 1,2,3)).to be_true
19
19
  end
20
20
  it "answers false for received_message? when message received with incorrect args" do
21
21
  @mock.message 1,2,3
22
- @mock.received_message?(:message, 1,2).should be_false
22
+ expect(@mock.received_message?(:message, 1,2)).to be_false
23
23
  end
24
24
  end
25
25
  end