Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Branch: master
Fetching contributors…

Cannot retrieve contributors at this time

56 lines (42 sloc) 2.169 kB
Mocking a class method
product = Product.new
Product.expects(:find).with(1).returns(product)
assert_equal product, Product.find(1)
Mocking an instance method on a real object
product = Product.new
product.expects(:save).returns(true)
assert product.save
Stubbing instance methods on real object
prices = [stub(:pence => 1000), stub(:pence => 2000)]
product = Product.new
product.stubs(:prices).returns(prices)
assert_equal [1000, 2000], product.prices.collect {|p| p.pence}
Stubbing an instance method on all instances of a class
Product.any_instance.stubs(:name).returns('stubbed_name')
product = Product.new
assert_equal 'stubbed_name', product.name
Traditional mocking
object = mock()
object.expects(:expected_method).with(:p1, :p2).returns(:result)
assert_equal :result, object.expected_method(:p1, :p2)
Shortcuts
object = stub(:method1 => :result1, :method2 => :result2)
assert_equal :result1, object.method1
assert_equal :result2, object.method2
Expection Methods:
at_least(minimum)
Modifies expectation so that the expected method must be called at least a minimum number of times.
at_least_once
Modifies expectation so that the expected method must be called at least once.
never
Modifies expectation so that the expected method must never be called.
raises(exception = RuntimeError, message = nil)
Modifies expectation so that when the expected method is called, it raises the specified exception with the specified message.
returns(value)
Modifies expectation so that when the expected method is called, it returns the specified value.
times(range)
Modifies expectation so that the number of calls to the expected method must be within a specific range.
with(*arguments, &block)
Modifies expectation so that the expected method must be called with specified arguments.
yields(*parameters)
Modifies expectation so that when the expected method is called, it yields with the specified parameters.
Jump to Line
Something went wrong with that request. Please try again.