diff --git a/lib/mocha/mock.rb b/lib/mocha/mock.rb index 69e1bcce1..c35c4256c 100644 --- a/lib/mocha/mock.rb +++ b/lib/mocha/mock.rb @@ -9,6 +9,7 @@ require 'mocha/argument_iterator' require 'mocha/expectation_error_factory' require 'mocha/deprecation' +require 'mocha/ruby_version' module Mocha @@ -314,7 +315,7 @@ def method_missing(symbol, *arguments, &block) end # @private - def respond_to?(symbol, include_private = false) + def respond_to_missing?(symbol, include_private = false) if @responder then if @responder.method(:respond_to?).arity > 1 @responder.respond_to?(symbol, include_private) @@ -326,6 +327,13 @@ def respond_to?(symbol, include_private = false) end end + # @private + if PRE_RUBY_V19 + def respond_to?(symbol, include_private = false) + respond_to_missing?(symbol, include_private) + end + end + # @private def __verified__?(assertion_counter = nil) @expectations.verified?(assertion_counter) diff --git a/test/unit/mock_test.rb b/test/unit/mock_test.rb index 7dc02e18a..44cce4868 100644 --- a/test/unit/mock_test.rb +++ b/test/unit/mock_test.rb @@ -334,6 +334,14 @@ def test_should_remove_expectation_for_unstubbed_method assert_match(/unexpected invocation/, e.message) end + unless PRE_RUBY_V19 + def test_expectation_is_defined_on_mock + mock = build_mock + mock.expects(:method1) + assert defined? mock.method1 + end + end + private def build_mock