Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
a quick and dirty example of how to stub a method on an object
require 'singleton'
class BlockTest
def test
puts "this is the real method."
yield if block_given?
end
end
class Object
def stub_method(method)
Foo::Bar.instance.stub_it(self, method)
end
end
module Foo
class Bar
include Singleton
def stub_it(object, method)
object.instance_eval(<<-EOF, __FILE__, __LINE__)
def #{method}
puts "this is a stubbed method."
yield if block_given?
end
EOF
end
end
end
bt = BlockTest.new
bt.test { puts "and a block from the real method"}
bt.stub_method(:test)
bt.test { puts "and a block from the subbed method"}
# output is:
# => this is the real method.
# => and a block from the real method
# => this is a stubbed method.
# => and a block from the stubbed method
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.