Cheatography
https://cheatography.com
Mocha is a Ruby library for mocking and stubbing. Shamelessly copied from the cheat gem mocha cheat sheet.
This is a draft cheat sheet. It is a work in progress and is not finished yet.
Mocking a class method
product = Product.new
Product.expects(:find).with(1).
returns(product)
assert_equal product, Product.find(1) |
Stub 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} |
Traditional mocking
object = mock()
object.expects(:expected_method).
with(:p1, :p2).returns(:result)
assert_equal :result,
object.expected_method(:p1, :p2) |
|
|
Mocking instance method on real object
product = Product.new
product.expects(:save).returns(true)
assert product.save |
Stub method on all instances of class
Product.any_instance.stubs(:name).
returns('stubbed_name')
product = Product.new
assert_equal 'stubbed_name',
product.name |
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. |
|