Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

file 55 lines (42 sloc) 2.169 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
  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.
Something went wrong with that request. Please try again.