Thanks!  One other thing I forgot to mention: the negative case (e.g. `allow().not to receive_message_chain`).  I think you already have code to prevent this but specs to document the behavior would be good.  Given you already have the code in place for it, it'd be good to "break" it somehow to confirm the tests you add for this can properly fail with a useful failure message.