プライベートメソッドのテストを書くのは良い習慣ですか?私はRSpecを使ってプライベートメソッドをテストすべきですか?
は、次の簡単な例を考えてみましょう:
class Group
has_many :members
private
def release_members
members.each { |member| member.update_attributes group_id: nil }
end
end
RSpecの中release_membersメソッドのテストを書くことをお勧めでしょうか?私はsendを使ってメソッドを呼び出すテストを書く必要があると信じています。 group.send(:release_members)
があります。
ルビーの悪党はSandi Metzのポッドキャストを持っているようですが、このトピックについてはhttp://rubyrogues.com/087-rr-book-clubpractical-object-oriented-design-in-ruby-with-sandi- metz /。議論は、あなたが好きな場合はプライベートメソッドをテストすることができ(最終的にはテストを削除することもできますが)、プライベートメソッドを呼び出すパブリックインターフェイスが最も重要です。 –