Dois-je unittest privé/protégé méthode

C'est en fait la langue agnostique. Mais je vais vous donner le contexte dans python.

J'ai cette classe parent

class Mammal(object):
    def __init__(self):
        """ do some work """

    def eat(self, food):
        """Eat the food"""
        way_to_eat = self._eating_method()
        self._consume(food)

    def _eating_method(self):
        """Template method"""

    def _consume(self, food):
        """Template method"""

Ici eat est la seule méthode publique alors que _consume et _eating_method sont effectivement protégés des méthodes qui seront mises en œuvre par les classes enfant.

Ce sera à toi de test lorsque vous avez écrit que l' Mammal classe?

Évidemment, tous les 4 méthodes.

Maintenant, nous allons introduire un enfant

class Tiger(Mammal):    
    def _eating_method(self):
        """Template method"""

    def _consume(self, food):
        """Template method"""

Regardez cette classe. Il a seulement 2 protégé méthodes.

Dois-je tester tous les 4 méthodes de Tiger (y compris 2 héréditaire) ou tout simplement tester les modifications introduites (seulement surdéfini 2 méthodes)?

Ce qui est le cas idéal?

  • Cela dépend. Normalement, le eat-méthode est testée à chaque résultat possible de _eating_method et _consume. Donc, seule la modification des méthodes devront être testés.