Module: AssertSend
- Defined in:
- lib/assert_send.rb
Constant Summary collapse
- ExpectationError =
Class.new(StandardError)
Instance Method Summary collapse
Instance Method Details
#assert_send(object, message, &block) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/assert_send.rb', line 4 def assert_send(object, , &block) = object.singleton_class original = object.method() executed = nil .send(:define_method, ) do |*args| executed = true original.(*args) end res = yield executed ? res : (raise ExpectationError, "Expected #{object} to receive message :#{}") ensure .send(:undef_method, ) .send(:define_method, , original) end |