diff options
author | ryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-12-01 05:33:32 +0000 |
---|---|---|
committer | ryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-12-01 05:33:32 +0000 |
commit | d264d3cc38696d8b66d7261ae75a96fb8bdf2729 (patch) | |
tree | c4db29fe9f04a410c985174f39bcb494adf9204d /lib/minitest/mock.rb | |
parent | ed22b0ecee668cbd58d469c05b10e74cd6f604ab (diff) | |
download | ruby-d264d3cc38696d8b66d7261ae75a96fb8bdf2729.tar.gz |
Imported minitest 2.0.0 r5952. Fixed test/unit.rb to work with changes
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/minitest/mock.rb')
-rw-r--r-- | lib/minitest/mock.rb | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/lib/minitest/mock.rb b/lib/minitest/mock.rb index 4871e8b183..99f7992aa9 100644 --- a/lib/minitest/mock.rb +++ b/lib/minitest/mock.rb @@ -14,14 +14,7 @@ module MiniTest end def expect(name, retval, args=[]) - n, r = name, retval # for the closure below @expected_calls[name] = { :retval => retval, :args => args } - self.class.__send__ :remove_method, name if respond_to? name - self.class.__send__(:define_method, name) { |*x| - raise ArgumentError unless @expected_calls[n][:args].size == x.size - @actual_calls[n] << { :retval => r, :args => x } - retval - } self end @@ -34,5 +27,19 @@ module MiniTest end true end + + 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 + + alias :original_respond_to? :respond_to? + def respond_to?(sym) + return true if @expected_calls.has_key?(sym) + return original_respond_to?(sym) + end end end |