Class: Spec::Mocks::Mock

Inherits:
Object show all
Includes:
Methods
Defined in:
lib/spec/mocks/mock.rb

Instance Method Summary collapse

Methods included from Methods

#received_message?, #rspec_reset, #rspec_verify, #should_not_receive, #should_receive, #stub!

Constructor Details

#initialize(name, 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.



9
10
11
12
# File 'lib/spec/mocks/mock.rb', line 9

def initialize(name, options={})
  @name = name
  @options = options
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(sym, *args, &block) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/spec/mocks/mock.rb', line 14

def method_missing(sym, *args, &block)
  __mock_proxy.instance_eval {@messages_received << [sym, args, block]}
  begin
    return self if __mock_proxy.null_object?
    super(sym, *args, &block)
  rescue NoMethodError
    __mock_proxy.raise_unexpected_message_error sym, *args
  end
end

Instance Method Details

#inspectObject



24
25
26
# File 'lib/spec/mocks/mock.rb', line 24

def inspect
  "#<#{self.class}:#{sprintf '0x%x', self.object_id} @name=#{@name.inspect}>"
end