Class: Spec::Mocks::Mock
- Includes:
- Methods
- Defined in:
- lib/spec/mocks/mock.rb
Instance Method Summary collapse
-
#==(other) ⇒ Object
This allows for comparing the mock to other objects that proxy such as ActiveRecords belongs_to proxy objects.
-
#initialize(name = nil, stubs_and_options = {}) ⇒ Mock
constructor
Creates a new mock with a
name
(that will be used in error messages only) == Options: *:null_object
- if true, the mock object acts as a forgiving null object allowing any message to be sent to it. - #inspect ⇒ Object
- #to_s ⇒ Object
Methods included from Methods
#as_null_object, #null_object?, #received_message?, #rspec_reset, #rspec_verify, #should_not_receive, #should_receive, #stub!, #stub_chain, #unstub!
Constructor Details
#initialize(name = nil, stubs_and_options = {}) ⇒ Mock
Creates a new mock with a name
(that will be used in error messages only) == Options:
-
:null_object
- if true, the mock object acts as a forgiving null object allowing any message to be sent to it.
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/spec/mocks/mock.rb', line 10 def initialize(name=nil, ={}) if name.is_a?(Hash) && .empty? = name @name = nil else @name = name end @options = () assign_stubs() end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(sym, *args, &block) ⇒ Object (private)
39 40 41 42 43 44 45 46 47 |
# File 'lib/spec/mocks/mock.rb', line 39 def method_missing(sym, *args, &block) __mock_proxy.(sym, args, block) begin return self if __mock_proxy.null_object? super(sym, *args, &block) rescue NameError __mock_proxy. sym, *args end end |
Instance Method Details
#==(other) ⇒ Object
This allows for comparing the mock to other objects that proxy such as ActiveRecords belongs_to proxy objects. By making the other object run the comparison, we’re sure the call gets delegated to the proxy target.
25 26 27 |
# File 'lib/spec/mocks/mock.rb', line 25 def ==(other) other == __mock_proxy end |
#inspect ⇒ Object
29 30 31 |
# File 'lib/spec/mocks/mock.rb', line 29 def inspect "#<#{self.class}:#{sprintf '0x%x', self.object_id} @name=#{@name.inspect}>" end |
#to_s ⇒ Object
33 34 35 |
# File 'lib/spec/mocks/mock.rb', line 33 def to_s inspect.gsub('<','[').gsub('>',']') end |