Yes, I know, that testing private methods it's not a good idea (and I read this thread - http://www.ruby-forum.com/topic/197346 - and some others) But how can I test the following code? I use xmpp4r. In my public method #listen I start receive jabber messages like so: def listen @client.add_message_callback do |m| do_things_with_message(m) end end private def do_things_with_message(m) # end #add_m