爲私有方法編寫測試是否很好?我應該使用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