Wie kann ich Ausnahmen in einem parametrisierten Test testen?

8

In JUnit4 können Sie parametrisierte Unit-Tests schreiben, indem Sie die Parameter-Collection in einer Methode bereitstellen, die an den Konstruktor des Tests übergeben und in einer anderen Methode getestet wird. Wenn ich einen Parameter habe, für den ich eine Ausnahme erwarte, wie kann ich das angeben?

    
Gabriel Ščerbák 11.11.2010, 08:29
quelle

5 Antworten

4
%Vor%     
Benoit Courtine 11.11.2010, 08:33
quelle
14

So verwende ich den junit-parametrisierten Test mit den erwarteten Ausnahmen:

%Vor%     
Yarix 27.03.2016 13:13
quelle
5

Im Gegensatz zu dem, was andere vorschlagen, würde ich keine Art von Logik für Tests einführen - sogar einfache Wenns!

Was Sie haben sollten, sind zwei Testmethoden:

  • der erste nimmt gültige Parameter (und erwartet einige Ausgaben)
  • Sekunde nimmt ungültige Parameter (und erwartet Ausnahmen)

Nicht sicher, ob JUnit mit seinem erbauerbasierten parametrisierten Test dazu in der Lage ist. Wahrscheinlich müssten Sie dafür zwei Testklassen erstellen. Gehen Sie mit JUnit Params oder TestNG, die viel bequemere Lösung bieten.

    
Tomek Kaczanowski 20.09.2012 18:48
quelle
1

Gabriel, bitte sehen Sie sich die TestWatcher-Regel an (seit JUnit 4.9). Hier ist der Beispielcode aus Ссылка :

%Vor%

Ein anderer Ansatz wäre, ErrorCollector von JUnit 4.7 zu verwenden:     @Regel     public ExpectedException ausgelöst = ExpectedException.none ();

%Vor%     
n0mer 02.07.2014 04:45
quelle
0

Wenn Sie anstelle der entsprechenden Anmerkungen und Regeln von JUnit4 catch-exception verwendet haben, würde Ihr Code dies tun Sieh so aus:

%Vor%     
rwitzel 22.06.2012 17:26
quelle