Created
October 2, 2013 16:51
-
-
Save sgharms/6796762 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment