Ich verwende assertRaises in meinem Unit-Test, um die Auslösung bestimmter Ausnahmen zu testen.
assertRaises(IOError, testToRun, passedValues)
Obwohl einige der Ausnahmen, die ich brauche, um zu erfassen, haben spezifische Fehlernummern (errno), so dass anstelle der Erfassung der Basis-Ausnahme, die ich möchte, um die spezifische Fehlernummer in Bezug auf diese Ausnahme zu erfassen. Etwas wie dieses, obwohl es offensichtlich nicht funktioniert :)
assertRaises(IOError.errno(2), testToRun, passedValue)
Um dies zu umgehen, wenn ich spezifisch nummerierte Ausnahmen erfassen möchte, habe ich Folgendes verwendet:-
try:
testToRun(passedValues)
except IOError, e:
if e.errno == 2:
pass
else:
raise
Ich bin sicher, es ist nicht perfekt, aber es funktioniert, aber fragte sich, ob es möglich ist, assertRaises zu verwenden, um die gleiche Sache zu tun ist eine viel kompaktere Weise.
Danke.