为私有方法编写测试是否很好?我应该使用RSpec测试私有方法吗?
考虑以下简单的例子:
class Group
has_many :members
private
def release_members
members.each { |member| member.update_attributes group_id: nil }
end
end
难道是写在RSpec中的release_members方法测试好的做法呢?我相信你必须编写测试调用发送ie的方法。 group.send(:release_members)
这是有时皱起了眉头。
看来,红宝石流氓有一个由桑迪梅斯播客,在这里谈论这个话题http://rubyrogues.com/087-rr-book-clubpractical-object-oriented-design-in-ruby-with-sandi-梅斯/。我们的观点是,如果你喜欢,你可以测试私有方法(最终甚至可以删除测试),但最重要的是调用私有方法的公共接口。 – 2013-04-24 16:33:00