Hallo Leute, ich habe mich gefragt, ob diese Art, meine Exception zu testen, in Ordnung ist, ich habe diese Ausnahme, die ich in die zweite Testannotation einwerfen muss, da ich als Ergebnis eine rote böse Bar und einen Erfolg und einen Fehler erhalte Ich denke, der Fehler ist meine Sorge, ich habe einen Fehler (); da aber der Grund ist, weil ich lese das ist der Weg, um die Ausnahme zu testen und jetzt bin ich verwirrt.
Ich muss auch sagen, dass ich den grünen Balken bekomme, weil ich die Ausnahme erwarte, aber ich weiß nicht, ob ein Fehler der richtige Weg ist, die Antwort der erwarteten Ausnahme zu sehen.
Auch wenn Sie einen Rat hätten, würde ich es begrüßen
%Vor%Es gibt 3 gängige Möglichkeiten, die erwartete Ausnahme zu testen:
Der erste ist der gebräuchlichste Weg, aber Sie können nur den Typ der erwarteten Ausnahme testen. Dieser Test schlägt fehl, wenn ExceptionType
nicht ausgelöst wird:
Sie können die Fehlermeldung auch nicht mit diesem Ansatz angeben
Die bessere Option ist die Verwendung von ExpectedException JUnit @Rule . Hier können Sie viel mehr für die erwartete Ausnahme geltend machen
%Vor%Mit der dritten Option können Sie dasselbe wie mit ExpectedException @Rule tun, aber alle Assertionen sollten manuell geschrieben werden. Der Vorteil dieser Methode besteht jedoch darin, dass Sie jede benutzerdefinierte Assertion und jede Assertion-Bibliothek verwenden können, die Sie möchten:
%Vor% Sie müssen das Exception
nicht mit try-catch
Wenn wir annehmen, dass factory.createLocomotive(weirdProtocol, false, new Date())
den exception
auslöst, wenn Sie ein Szenario anwenden, das exception
ausgelöst hat.
Sie können die ExpectedException verwenden, die Ihnen genauere Informationen über die Es wird erwartet, dass die Exception mit der folgenden Fehlermeldung ausgelöst wird:
%Vor%Um mehr darüber zu erfahren, können Sie den Blog von mir hier beziehen - Erwartete Ausnahmeregel und statische Methoden zum Verspotten - JUnit
Tags und Links java unit-testing junit junit4