Class: SimpleMock::MockDelegator
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- SimpleMock::MockDelegator
- Extended by:
- Forwardable
- Defined in:
- lib/simple_mock/mock_delegator.rb
Instance Attribute Summary collapse
-
#__tracer ⇒ Object
Returns the value of attribute __tracer.
Instance Method Summary collapse
-
#expect(name, retval, args = []) ⇒ Object
Expect that method
name
is called, optionally withargs
, and returnsretval
. -
#initialize(object) ⇒ MockDelegator
constructor
A new instance of MockDelegator.
Constructor Details
#initialize(object) ⇒ MockDelegator
Returns a new instance of MockDelegator.
9 10 11 12 |
# File 'lib/simple_mock/mock_delegator.rb', line 9 def initialize object super self.__tracer = Tracer.new end |
Instance Attribute Details
#__tracer ⇒ Object
Returns the value of attribute __tracer.
5 6 7 |
# File 'lib/simple_mock/mock_delegator.rb', line 5 def __tracer @__tracer end |
Instance Method Details
#expect(name, retval, args = []) ⇒ Object
Expect that method name
is called, optionally with args
, and returns retval
.
mock.expect :meaning_of_life, 42
mock.meaning_of_life # => 42
mock.expect :do_something_with, true, [some_obj, true]
mock.do_something_with some_obj, true # => true
args
is compared to the expected args using case equality (ie, the ‘===’ method), allowing for less specific expectations.
mock.expect :uses_any_string, true, [String]
mock.uses_any_string 'foo' # => true
mock.verify # => true
mock.expect :uses_one_string, true, ['foo']
mock.uses_one_string 'bar' # => true
mock.verify # => raises MockExpectationError
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/simple_mock/mock_delegator.rb', line 33 def expect name, retval, args = [] method_definition = Module.new do define_method name do |*args, &block| __tracer.assert name, args retval end end extend method_definition __tracer.register name, args self end |