Ist es eine gute Übung, Tests für private Methoden zu schreiben?Sollte ich private Methoden mit RSpec testen?
Betrachten Sie das folgende einfache Beispiel:
class Group
has_many :members
private
def release_members
members.each { |member| member.update_attributes group_id: nil }
end
end
Wäre es eine gute Übung einen Test für die release_members Methode in RSpec zu schreiben? Ich glaube, du müsstest den Test schreiben, indem du die Methode mit sendest anrufst. group.send(:release_members)
, die manchmal verpönt ist.
Es scheint, dass Ruby Rogues einen Podcast von Sandi Metz hat, der über dieses Thema unter http://rubyrogues.com/087-rr-book-clubpractical-object-oriented-design-in-ruby-with-sandi- metz /. Das Argument ist, dass Sie die private Methode testen können, wenn Sie möchten (eventuell sogar den Test löschen), aber am wichtigsten ist die öffentliche Schnittstelle, die die private Methode aufgerufen hat. –