Antworten:
Im Allgemeinen fügen Sie setUp alle erforderlichen Schritte und TearDown alle Bereinigungsschritte hinzu.
Weitere Beispiele finden Sie hier .
Wenn eine setUp () -Methode definiert ist, führt der Testläufer diese Methode vor jedem Test aus. Wenn eine tearDown () -Methode definiert ist, ruft der Testläufer diese Methode nach jedem Test auf.
Sie haben beispielsweise einen Test, für den Elemente vorhanden sein müssen, oder einen bestimmten Status. Sie fügen diese Aktionen (Erstellen von Objektinstanzen, Initialisieren der Datenbank, Vorbereiten von Regeln usw.) in setUp ein.
Wie Sie wissen, sollte jeder Test an der Stelle anhalten, an der er gestartet wurde. Dies bedeutet, dass wir den App-Status auf den ursprünglichen Zustand zurücksetzen müssen - z. B. Dateien schließen, Verbindungen herstellen, neu erstellte Elemente entfernen, Rückruf von Transaktionen aufrufen usw. - all dies Schritte sind in den TearDown aufzunehmen.
Die Idee ist also, dass der Test selbst nur Aktionen enthalten sollte, die für das Testobjekt ausgeführt werden müssen, um das Ergebnis zu erhalten, während setUp und tearDown die Methoden sind, mit denen Sie Ihren Testcode sauber und flexibel lassen können.
Sie können ein SetUp und ein TearDown für eine Reihe von Tests erstellen und diese in einer übergeordneten Klasse definieren. So können Sie solche Tests problemlos unterstützen und allgemeine Vorbereitungen und Bereinigungen aktualisieren.
Wenn Sie nach einem einfachen Beispiel suchen, verwenden Sie bitte den folgenden Link mit Beispiel
Mit diesen können Sie Code herausrechnen, der allen Tests in der Testsuite gemeinsam ist.
Wenn Ihre Tests häufig wiederholten Code enthalten, können Sie diese verkürzen, indem Sie diesen Code in setUp / tearDown verschieben.
Sie können dies zum Erstellen von Testdaten (z. B. Einrichten von Fälschungen / Verspottungen) oder zum Auslöschen von Funktionen mit Fälschungen verwenden.
Wenn Sie Integrationstests durchführen, können Sie die Umgebungsbedingungen in setUp überprüfen und den Test überspringen, wenn etwas nicht richtig eingerichtet ist.
Beispielsweise:
class TurretTest(unittest.TestCase):
def setUp(self):
self.turret_factory = TurretFactory()
self.turret = self.turret_factory.CreateTurret()
def test_turret_is_on_by_default(self):
self.assertEquals(True, self.turret.is_on())
def test_turret_turns_can_be_turned_off(self):
self.turret.turn_off()
self.assertEquals(False, self.turret.is_on())
Angenommen, Sie haben eine Suite mit 10 Tests. 8 der Tests haben denselben Setup- / Teardown-Code. Die anderen 2 nicht.
Setup und Teardown bieten Ihnen eine gute Möglichkeit, diese 8 Tests zu überarbeiten. Was machst du nun mit den anderen 2 Tests? Sie würden sie in einen anderen Testfall / eine andere Suite verschieben. Die Verwendung von Setup und Teardown hilft also auch dabei, die Tests auf natürliche Weise in Fälle / Suiten zu unterteilen