All mock objects are an instance of Mock

Methods
E
V
Instance Public methods
expect(name, retval, args=[])

Expect that method name is called, optionally with args, and returns retval.

@mock.expect(:meaning_of_life, 42)
@mock.meaning_of_life # => 42

@mock.expect(:do_something_with, true, [some_obj, true])
@mock.do_something_with(some_obj, true) # => true

args is compared to the expected args using case equality (ie, the '===' operator), allowing for less specific expectations.

@mock.expect(:uses_any_string, true, [String])
@mock.uses_any_string("foo") # => true
@mock.verify  # => true

@mock.expect(:uses_one_string, true, ["foo"]
@mock.uses_one_string("bar") # => true
@mock.verify  # => raises MockExpectationError
# File ../ruby/lib/minitest/mock.rb, line 52
def expect(name, retval, args=[])
  @expected_calls[name] = { :retval => retval, :args => args }
  self
end
verify()

Verify that all methods were called as expected. Raises MockExpectationError if the mock object was not called as expected.

# File ../ruby/lib/minitest/mock.rb, line 62
def verify
  @expected_calls.each_key do |name|
    expected = @expected_calls[name]
    msg1 = "expected #{name}, #{expected.inspect}"
    msg2 = "#{msg1}, got #{@actual_calls[name].inspect}"

    raise MockExpectationError, msg2 if
      @actual_calls.has_key? name and
      not @actual_calls[name].include?(expected)

    raise MockExpectationError, msg1 unless
      @actual_calls.has_key? name and @actual_calls[name].include?(expected)
  end
  true
end