Gegeben dieser Python-Code:
%Vor%Ich möchte alle möglichen Pfade einschließlich der Ausnahmebehandlung testen. Mit Mock ist es einfach genug, eine Ausnahme, die ich mit diesem Code mache, zu erhöhen :
%Vor%Mock löst eine Ausnahme aus, die einen gedruckten Wert von 2 (ENOENT) hat - aber e.errno ist auf NONE gesetzt. Und bis jetzt habe ich keinen Weg gefunden, es zu setzen. Das Ergebnis ist, dass die Ausnahme immer re-raised wird und ich nie die letzte Codezeile in meinem Komponententest erreiche.
Ich habe auch versucht, eine Dummy-Klasse mit errno set zu erstellen und diese zurückzugeben. Aber es sei denn, es ist * side_effect * gesetzt, um aufgerufen zu werden, es löst keine Ausnahme aus, und wenn ich side_effect einstelle, erhalte ich das object.errno nicht als Rückgabewert.
Gibt es eine Möglichkeit, Mock eine Exception auslösen zu lassen, wo das Exception-Objekt das Attribut errno gesetzt hat?
Tags und Links python unit-testing mocking