unittest: assertRaises <-> failUnlessRaises

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Montag 22. Mai 2006, 13:37

Irgendwie verstehe ich den Unterschied zwischen den beiden nicht:
Test that an exception is raised when callable is called with any positional or keyword arguments that are also passed to assertRaises(). The test passes if exception is raised, is an error if another exception is raised, or fails if no exception is raised. To catch any of a group of exceptions, a tuple containing the exception classes may be passed as exception.
http://docs.python.org/lib/testcase-obj ... l#l2h-1150

Ist es evtl. so, das bei failUnlessRaises eine Exception auf jeden Fall ausgelöst werden muß, damit der test OK ist und bei assertRaises ist es optional?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 22. Mai 2006, 14:25

Nein, das sind einfach zwei Namen für eine Funktion. So finde ich failUnlessRaises deskriptiver als assertRaises, und würde es deswegen bevorzugen. Einen funktionalen Unterschied macht es nicht.

In der unittest.py steht auch:

Code: Alles auswählen

assertRaises = failUnlessRaises
Das Prinzip ist in Python eher selten (you know, the only one way-thing), in Ruby findet man das dagegen öfter.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Montag 22. Mai 2006, 14:31

Hm! Ist wahrscheinlich so gekommen, weil unitest doch mal ursprünglich ein seperates Project war... Vielleicht hatte man beim Eingliedern die Methoden umbenannt, wollte aber noch Abwärtskompatibel bleiben... Wer weiß...

Auf jeden Fall: danke für die Info! :lol:

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 22. Mai 2006, 14:33

jens hat geschrieben:Ist wahrscheinlich so gekommen, weil unitest doch mal ursprünglich ein seperates Project war... Vielleicht hatte man beim Eingliedern die Methoden umbenannt, wollte aber noch Abwärtskompatibel bleiben... Wer weiß...
Eher wegen JUnit:
PyUnit website hat geschrieben:PyUnit is based on Java's JUnit, and therefore uses a proven testing architecture
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten