Kurs Python richtig lernen/Unit Testing: Unterschied zwischen den Versionen
Zeile 9: | Zeile 9: | ||
Um Nose kennenzulernen starten wir mit einem Beispiel. Speichern Sie den folgenden Unit test in einem File "test_42.py": | Um Nose kennenzulernen starten wir mit einem Beispiel. Speichern Sie den folgenden Unit test in einem File "test_42.py": | ||
− | + | def test_life_the_universe_and_everything(): | |
− | def test_life_the_universe_and_everything(): | + | assert 42 == 42 |
− | |||
− | |||
Führen Sie diesen Test wiefolgt aus: | Führen Sie diesen Test wiefolgt aus: | ||
− | + | $ nosetests | |
− | $ nosetests | ||
− | |||
Als Output bekommen Sie eine kleine Statistik inkl. dem Fehlerstatus (OK/NOK). Möchten Sie detailliertere Infors (welche Tests durchgeführt wurden), dann verwenden Sie die Option ''-v''. | Als Output bekommen Sie eine kleine Statistik inkl. dem Fehlerstatus (OK/NOK). Möchten Sie detailliertere Infors (welche Tests durchgeführt wurden), dann verwenden Sie die Option ''-v''. | ||
Zeile 24: | Zeile 20: | ||
Manchmal benötigen Sie für Ihre Unit Tests Fixtures. Diese können Sie wiefolgt definieren: | Manchmal benötigen Sie für Ihre Unit Tests Fixtures. Diese können Sie wiefolgt definieren: | ||
− | + | def test_life_the_universe_and_everything(): | |
− | def test_life_the_universe_and_everything(): | + | assert 42 != 42 |
− | |||
− | |||
− | |||
− | |||
− | Führen Sie dieses Beispiel aus und verifizieren Sie, dass die Ausgaben Ihren Erwartungen entsprechen. | + | def setUp(): print "Setup" |
+ | def tearDown(): print "tearDown" | ||
+ | |||
+ | test_life_the_universe_and_everything.setUp = setUp | ||
+ | test_life_the_universe_and_everything.tearDown = tearDown | ||
+ | |||
+ | Führen Sie dieses Beispiel aus und verifizieren Sie, dass die Ausgaben Ihren Erwartungen entsprechen (setup, failing test, teardown). | ||
+ | |||
+ | Nose erlaubt es Ihnen - neben Testfunktionen - Ihre Tests auch innerhalb einer Klasse zu schreiben (gemäss xUnit). Das gleiche Beispiel wie vorhin: | ||
+ | |||
+ | class Test42: | ||
+ | def setUp(self): print "Setup" | ||
+ | |||
+ | def tearDown(self): print "tearDown" | ||
+ | def test_life_the_universe_and_everything(self): | ||
+ | assert 42 != 42 |
Version vom 12. September 2012, 13:07 Uhr
Übung "Unit Testing mit Python und Nose"
In dieser Übung lernen Sie Unit Testing mit dem Python Test Runner Nose.
Geschätzter Zeitaufwand für diese Übung: ca. 2h.
Einstieg
Um Nose kennenzulernen starten wir mit einem Beispiel. Speichern Sie den folgenden Unit test in einem File "test_42.py":
def test_life_the_universe_and_everything(): assert 42 == 42
Führen Sie diesen Test wiefolgt aus:
$ nosetests
Als Output bekommen Sie eine kleine Statistik inkl. dem Fehlerstatus (OK/NOK). Möchten Sie detailliertere Infors (welche Tests durchgeführt wurden), dann verwenden Sie die Option -v.
Manchmal benötigen Sie für Ihre Unit Tests Fixtures. Diese können Sie wiefolgt definieren:
def test_life_the_universe_and_everything(): assert 42 != 42
def setUp(): print "Setup" def tearDown(): print "tearDown"
test_life_the_universe_and_everything.setUp = setUp test_life_the_universe_and_everything.tearDown = tearDown
Führen Sie dieses Beispiel aus und verifizieren Sie, dass die Ausgaben Ihren Erwartungen entsprechen (setup, failing test, teardown).
Nose erlaubt es Ihnen - neben Testfunktionen - Ihre Tests auch innerhalb einer Klasse zu schreiben (gemäss xUnit). Das gleiche Beispiel wie vorhin:
class Test42: def setUp(self): print "Setup" def tearDown(self): print "tearDown" def test_life_the_universe_and_everything(self): assert 42 != 42