rspec-mocks 2.12.1 → 2.12.2

Sign up to get free protection for your applications and to get access to all the features.
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