Frage

Ich habe zwei Tests, um den erwarteten Ausnahmeauswurf zu überprüfen.Ich verwende Junit 4 und habe die folgende Syntax.

@Test(expected=IllegalArgumentException.class)
public void testSomething(){
..........
}

Einer der Tests schlägt fehl, obwohl eine IllegalArgumentException ausgelöst wird und der andere bestanden wird.Irgendeine Idee, was fehlt??Ich habe den Test geändert, der nicht befolgt wird, und er besteht.

public void testSomething(){
 try{
  ............ //line that throws exception
  fail();
 }catch(IllegalArgumentException e) {
 }
} 
War es hilfreich?

Lösung

Mir ist nur aufgefallen, dass der zweite Test überhaupt keine @Test-Annotation hat.JUNIT4 führt keine Tests aus, die nicht mit Anmerkungen versehen sind, selbst wenn die Methodennamen mit test*** beginnen (es sei denn, Sie erweitern tatsächlich die TestCase-Klasse. In diesem Fall verhält sie sich wie ein JUNIT3.x-Testfall).

Vielleicht liegt es daran, dass der Test überhaupt nicht läuft (und Sie daher denken, dass er bestanden wurde)?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top