Seite 1 von 1

unittest: assertRaises <-> failUnlessRaises

Verfasst: Montag 22. Mai 2006, 13:37
von jens
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?

Verfasst: Montag 22. Mai 2006, 14:25
von Leonidas
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.

Verfasst: Montag 22. Mai 2006, 14:31
von jens
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:

Verfasst: Montag 22. Mai 2006, 14:33
von Leonidas
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