JUnit richtiger Weg des Tests erwartete Ausnahmen

8

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%     
Daniel Vega 21.02.2017, 17:48
quelle

4 Antworten

7

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:

%Vor%

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%     
Sergii Bishyr 22.02.2017, 10:32
quelle
2

Sie müssen das Exception nicht mit try-catch

abfangen %Vor%

Wenn wir annehmen, dass factory.createLocomotive(weirdProtocol, false, new Date()) den exception auslöst, wenn Sie ein Szenario anwenden, das exception ausgelöst hat.

%Vor%     
Mouad EL Fakir 21.02.2017 17:52
quelle
2

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

    
Arpit 21.02.2017 17:59
quelle
1

Wenn Sie Java 8 verwenden, würde ich empfehlen, für die AssertJ Bibliothek

zu gehen %Vor%

Mit dieser Lösung können Sie den Ausnahmetyp mit einer Nachricht usw. überprüfen.

für mehr lesen, werfen Sie einen Blick auf: Ссылка

    
pezetem 21.02.2017 18:10
quelle

Tags und Links