Class: MiniTest::Mock
Instance Method Summary
collapse
Constructor Details
#initialize ⇒ Mock
Returns a new instance of Mock.
5
6
7
8
|
# File 'lib/minitest/mock.rb', line 5
def initialize
@expected_calls = {}
@actual_calls = Hash.new {|h,k| h[k] = [] }
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(sym, *args) ⇒ Object
25
26
27
28
29
30
31
|
# File 'lib/minitest/mock.rb', line 25
def method_missing(sym, *args)
raise NoMethodError unless @expected_calls.has_key?(sym)
raise ArgumentError unless @expected_calls[sym][:args].size == args.size
retval = @expected_calls[sym][:retval]
@actual_calls[sym] << { :retval => retval, :args => args }
retval
end
|
Instance Method Details
#expect(name, retval, args = []) ⇒ Object
10
11
12
13
|
# File 'lib/minitest/mock.rb', line 10
def expect(name, retval, args=[])
@expected_calls[name] = { :retval => retval, :args => args }
self
end
|
#original_respond_to? ⇒ Object
33
|
# File 'lib/minitest/mock.rb', line 33
alias :original_respond_to? :respond_to?
|
#respond_to?(sym) ⇒ Boolean
34
35
36
37
|
# File 'lib/minitest/mock.rb', line 34
def respond_to?(sym)
return true if @expected_calls.has_key?(sym)
return original_respond_to?(sym)
end
|
15
16
17
18
19
20
21
22
23
|
# File 'lib/minitest/mock.rb', line 15
def verify
@expected_calls.each_key do |name|
expected = @expected_calls[name]
msg = "expected #{name}, #{expected.inspect}"
raise MockExpectationError, msg unless
@actual_calls.has_key? name and @actual_calls[name].include?(expected)
end
true
end
|