Wait for it

This little piece of work helps you know if an expected message was passed somewhere down your call stack.


It's quite simple. Imagine you want to make sure user.save gets called.

include AssertSend

user = User.find(...)

assert_send(user, :save) do

If your_dangerous_code! doesn't call user.save in the call stack, it'll raise a AssertSend::ExpectationError.

It's important to know that this will not stub your method. The original implementation it's never tampered with.

If you're looking to stub things, I suggest you having a look at frodsan/mocoso.


gem install assert-send