是的,我知道,测试私有方法不是一个好主意(我读了这个线程 - http://www.ruby-forum.com/topic/197346 - 和其他一些)
但是我怎样才能测试下面的代码呢?
我使用 xmpp4r。在我的公共方法中#listen
,我开始收到这样的 jabber 消息:
def listen
@client.add_message_callback do |m|
do_things_with_message(m)
end
end
private
def do_things_with_message(m)
#
end
#add_message_callback
- 运行块,当消息到来时(在不同的线程中)
所以,测试#listen
方法很困难,而且比我的测试 xmpp4r#do_things_with_message
如何做好并测试#do_things_with_message
?:)(http://www.ruby-forum.com/topic/197346#859664)
将私有方法重构为新对象本质上就像我将它们设为公共(并且使用一种方法进行类 - 这是毫无意义的
编辑:
这更多是关于干净代码和正确测试的理论问题。在我的第一个链接中,人们认为测试私有方法很差。我不想作弊#send
,但我也没有看到任何可行的重构方法