Module: Mocha::ObjectMethods

Module | Mocha::ObjectMethods
In: | lib/mocha/inspect.rb lib/mocha/metaclass.rb lib/mocha/object.rb lib/mocha/parameter_matchers/object.rb

Methods added all objects to allow mocking and stubbing on real objects.

Methods return a Mocha::Expectation which can be further modified by methods on Mocha::Expectation.

### Methods

__metaclass__ expects mocha_inspect stubs

### Public Instance methods

__metaclass__()
expects(method_name) → expectation
expects(method_names_vs_return_values) → last expectation

Adds an expectation that a method identified by `method_name` Symbol must be called exactly once with any parameters. Returns the new expectation which can be further modified by methods on Mocha::Expectation.

      product = Product.new
      product.expects(:save).returns(true)
      assert_equal true, product.save

The original implementation of `Product#save` is replaced temporarily.

The original implementation of `Product#save` is restored at the end of the test.

If `method_names_vs_return_values` is a `Hash`, an expectation will be set up for each entry using the key as `method_name` and value as `return_value`.

      product = Product.new
      product.expects(:valid? => true, :save => true)

      # exactly equivalent to

      product = Product.new
      product.expects(:valid?).returns(true)
      product.expects(:save).returns(true)

mocha_inspect()
stubs(method_name) → expectation
stubs(method_names_vs_return_values) → last expectation

Adds an expectation that a method identified by `method_name` Symbol may be called any number of times with any parameters. Returns the new expectation which can be further modified by methods on Mocha::Expectation.

      product = Product.new
      product.stubs(:save).returns(true)
      assert_equal true, product.save

The original implementation of `Product#save` is replaced temporarily.

The original implementation of `Product#save` is restored at the end of the test.

If `method_names_vs_return_values` is a `Hash`, an expectation will be set up for each entry using the key as `method_name` and value as `return_value`.

      product = Product.new
      product.stubs(:valid? => true, :save => true)

      # exactly equivalent to

      product = Product.new
      product.stubs(:valid?).returns(true)
      product.stubs(:save).returns(true)

[Validate]