Sollte ich unittest private/protected-Methode

Dies ist eigentlich sprachneutral. Aber ich gebe dir Kontext, in python.

Ich habe diese übergeordnete Klasse

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"""

Hier eat ist die einzige öffentliche Methode in der Erwägung, dass _consume und _eating_method sind eigentlich geschützte Methoden durchgeführt werden, die von Kind-Klassen.

, Was Sie testen, wenn Sie geschrieben haben, nur die Mammal Klasse?

Offensichtlich alle 4 Methoden.

Lassen Sie uns nun vorstellen, ein Kind

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

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

Blick auf diese Klasse. Es hat nur 2 geschützt Methoden.

Sollte ich zum testen alle 4 Methoden der Tiger (einschließlich 2 übernommen) - oder testen Sie einfach die änderungen (nur overrided 2 Methoden)?

Was ist der Idealfall?

Das hängt davon ab. Normalerweise ist der eat-Methode getestet, mit allen möglichen Ergebnis _eating_method und _consume. So werden nur die geänderten Methoden getestet werden müssen.

InformationsquelleAutor Shiplu Mokaddim | 2014-12-30

Schreibe einen Kommentar