Ich bin neu im Komponententest und versuche, JUnit zu lernen. Die Behandlung von Ausnahmen in Tests funktioniert in meinem Projekt nicht. Hier ist meine Klasse:JUnit-Ausnahmebehandlung funktioniert nicht
public class Things {
private int amount;
private int[] weights;
private int[] values;
public Things(int amount, int[] weights, int[] values){
this.amount = amount;
if (amount!=weights.length || amount != values.length){
throw new IllegalArgumentException("Amount of things different than weights or values length");
}
this.weights=weights;
this.values=values;
}
}
und Testklasse:
public class ThingsTest {
@Test
public void testThingsConstructorIllegalArgumentsException(){
boolean exceptionThrown = false;
try{
Things thingsBadParams = new Things(5, new int[]{4,3,2}, new int[]{7,8});
}
catch (IllegalArgumentException e){
exceptionThrown = true;
}
Assert.assertTrue(exceptionThrown);
}
}
Ich weiß, dass vielleicht dies nicht der beste Weg ist, Ausnahme zu behandeln, aber das ist nicht der Punkt. Ich habe versucht, jede Lösung wahrscheinlich (mit @Rule, @Test (expected = IllegalArgumentException.class) und jedes Mal, immer noch der Test fehlschlägt, gibt es einen roten Balken und Beschreibung darunter:
java.lang.IllegalArgumentException: Amount of things different than weights or values length
at pl.dsdev.Things.<init>(Things.java:14)
at ThingsTest.<init>(ThingsTest.java:11)
Ich bin . mit IntelliJ Idea 2017, Maven und JUnit 4.12 Was soll ich tun Test erfolgreich machen
Der Stack-Trace zeigt, dass Sie nicht den Code sind ausführen Sie auf dem Laufenden . Die Ausnahme wird vom ThingsTest-Konstruktor ausgelöst. Und es gibt keinen Konstruktor im geposteten Code. Zeigen Sie uns Ihren ** tatsächlichen ** Code –