È buona pratica scrivere test per metodi privati?Devo testare i metodi privati usando RSpec?
Si consideri il seguente esempio semplice:
class Group
has_many :members
private
def release_members
members.each { |member| member.update_attributes group_id: nil }
end
end
sarebbe buona norma scrivere un test per il metodo release_members in RSpec? Credo che dovresti scrivere il test chiamando il metodo con send ie. group.send(:release_members)
che a volte è disapprovato.
Sembra che Ruby Rogue abbia un podcast di Sandi Metz che parla di questo argomento su http://rubyrogues.com/087-rr-book-clubpractical-object-orientated-design-in-ruby-with-sandi- metz /. L'argomento è che è possibile testare il metodo privato, se lo si desidera (eventualmente eliminare anche il test), ma soprattutto l'interfaccia pubblica che ha chiamato il metodo privato. –