]> git.openstreetmap.org Git - rails.git/blob - vendor/gems/rspec-1.1.2/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb
added RSpec and RSpec on Rails
[rails.git] / vendor / gems / rspec-1.1.2 / spec / spec / mocks / partial_mock_using_mocks_directly_spec.rb
1 require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
3 module Spec
4 module Mocks
5 describe "PartialMockUsingMocksDirectly" do
6     before(:each) do
7       
8         klass=Class.new
9         klass.class_eval do
10           def existing_method
11             :original_value
12           end
13         end
14         @obj = klass.new
15       
16     end
17     
18     # See http://rubyforge.org/tracker/index.php?func=detail&aid=10263&group_id=797&atid=3149
19     # specify "should clear expectations on verify" do
20     #     @obj.should_receive(:msg)
21     #     @obj.msg
22     #     @obj.rspec_verify
23     #     lambda do
24     #       @obj.msg
25     #     end.should raise_error(NoMethodError)
26     #   
27     # end
28     it "should fail when expected message is not received" do
29         @obj.should_receive(:msg)
30         lambda do
31           @obj.rspec_verify
32         end.should raise_error(MockExpectationError)
33       
34     end
35     it "should fail when message is received with incorrect args" do
36         @obj.should_receive(:msg).with(:correct_arg)
37         lambda do
38           @obj.msg(:incorrect_arg)
39         end.should raise_error(MockExpectationError)
40         @obj.msg(:correct_arg)
41       
42     end
43     it "should pass when expected message is received" do
44         @obj.should_receive(:msg)
45         @obj.msg
46         @obj.rspec_verify
47       
48     end
49     it "should pass when message is received with correct args" do
50         @obj.should_receive(:msg).with(:correct_arg)
51         @obj.msg(:correct_arg)
52         @obj.rspec_verify
53       
54     end
55     it "should revert to original method if existed" do
56         @obj.existing_method.should equal(:original_value)
57         @obj.should_receive(:existing_method).and_return(:mock_value)
58         @obj.existing_method.should equal(:mock_value)
59         @obj.rspec_verify
60         @obj.existing_method.should equal(:original_value)
61       
62     end
63   
64 end
65 end
66 end