2016-05-30 12 views
19

Vor kurzem Ned Batchelder während his talk at PyCon 2016 bemerkt:addCleanUp vs tearDown

Wenn Sie unittest verwenden, um Ihre Tests zu schreiben, auf jeden Fall addCleanup verwenden, ist es viel besser als tearDown.

Bisher habe ich nie benutzt addCleanUp() und setUp()/tearDown() Paar von Methoden zur Prüfung verwendet wurde „set up“ und „abzureißen“ Phasen.

Warum sollte ich zu addCleanUp() statt tearDown() wechseln?


Es wurde auch kürzlich in der Python unittest with Robert Collins Podcast diskutiert.

+1

Ich bemerkte das Gespräch und fragte mich das Gleiche. – PascalVKooten

Antwort

24

Per den addCleanup doc string:

Cleanup Elemente werden genannt, auch wenn setUp (im Gegensatz zu tearDown) nicht

addCleanup kann verwendet werden, um mehrere Funktionen zu registrieren, so dass Sie könnte separate Funktionen für jede verwenden Ressource, die Sie aufräumen möchten. Das würde Ihren Code etwas wiederverwendbarer/modularer machen.

4

addCleanup() Methoden werden ausgeführt, auch wenn einer von ihnen fehlschlägt, und wird auch ausgeführt, wenn setUp() fehlschlägt. Sie sollten auch die Verwendung von pytest in Betracht ziehen.

2

Eine andere gute Sache über addCleanup ist, dass es einfach so funktioniert, wie Sie es erwarten würden.

Zum Beispiel, wenn Sie es in einer setUp Funktion aufrufen, dann rufen alle Testmethoden die Aufräumfunktion am Ende auf.

Wenn Sie es in einer Testmethode aufrufen, ruft nur diese Methode die Bereinigungsfunktion auf.

Verwandte Themen