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.
# File lib/mocha/metaclass.rb, line 4 def __metaclass__ class << self; self; end end
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)
# File lib/mocha/object.rb, line 53 def expects(method_name_or_hash) expectation = nil mockery = Mocha::Mockery.instance iterator = ArgumentIterator.new(method_name_or_hash) iterator.each { |*args| method_name = args.shift mockery.on_stubbing(self, method_name) method = stubba_method.new(stubba_object, method_name) mockery.stubba.stub(method) expectation = mocha.expects(method_name, caller) expectation.returns(args.shift) if args.length > 0 } expectation end
# File lib/mocha/inspect.rb, line 6 def mocha_inspect address = self.__id__ * 2 address += 0x100000000 if address < 0 inspect =~ /#</ ? "#<#{self.class}:0x#{'%x' % address}>" : inspect end
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)
# File lib/mocha/object.rb, line 90 def stubs(method_name_or_hash) expectation = nil mockery = Mocha::Mockery.instance iterator = ArgumentIterator.new(method_name_or_hash) iterator.each { |*args| method_name = args.shift mockery.on_stubbing(self, method_name) method = stubba_method.new(stubba_object, method_name) mockery.stubba.stub(method) expectation = mocha.stubs(method_name, caller) expectation.returns(args.shift) if args.length > 0 } expectation end
Generated with the Darkfish Rdoc Generator 2.