$ command line cheat sheets
Cheat Sheet Title: [ no_spaces_alphanumeric_only ]
Cheat Sheet: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.
Your cheat sheet will be editable (fixable) by anyone. Each cheat sheet is essentially a wiki page. It may also be used by millions of people for reference purposes from the comfort of their command line. If this is okay with you, please save.