Ich bin nur ein Anfänger in Python und Programmierung im Allgemeinen, und habe einige Fragen über das Unittest-Modul.Unit-Tests für Ausnahmen in Python-Konstruktor
Ich habe eine Klasse, und in der __init__
Methode mache ich einige Behauptungen auf schlechte Argumente zu überprüfen. Ich möchte einen Unittest erstellen, der beim Anlegen neuer Instanzen nach solchen AssertionError sucht.
Im Unittest-Modul kann man (mit assertRaises
) für eine bestimmte Ausnahme testen, wenn ein Callable aufgerufen wird, aber offensichtlich gilt das für Methoden der Klasse. Was ist der richtige Weg, um einen solchen Test für den Konstruktor auszuführen?
Ich weiß, dass ich einfach versuchen kann, eine Instanz der Klasse mit schlechten Argumenten zu erstellen, und Unittest meldet einen Testfehler, der aber sofort nach der ersten solchen Ausnahme stoppt, und auch wenn ich mehrere Tests in mehrere umbrechen kann Testfunktionen, es scheint einfach nicht elegant.
Nun, in meinem speziellen Fall möchte ich behaupten, dass etwas früh falsch gelaufen ist, denn später lade ich einige C-Bibliotheken mit ctypes und muss ihnen Argumente vom Konstruktor übergeben ... –
@asen_asenov: In diesem Fall , wickeln Sie einfach Ihren Ctypes-Aufruf mit der entsprechenden Umwandlung, z ctypes.c_int (param). Dadurch wird sichergestellt, dass der Typ kompatibel ist und bei inkompatiblen Typen automatisch ein Fehler auftritt. – nosklo