module AssertSend
Constants
- ExpectationError
Public Instance Methods
assert_send(object, message) { || ... }
click to toggle source
# File lib/assert_send.rb, line 4 def assert_send(object, message, &block) metaclass = object.singleton_class original = object.method(message) executed = nil metaclass.send(:define_method, message) do |*args| executed = true original.(*args) end res = yield executed ? res : (raise ExpectationError, "Expected #{object} to receive message :#{message}") ensure metaclass.send(:undef_method, message) metaclass.send(:define_method, message, original) end