Domanda
Ho due test per verificare il tiro un'eccezione prevista. Sto usando Junit 4 e ha seguente sintassi.
@Test(expected=IllegalArgumentException.class)
public void testSomething(){
..........
}
Uno dei test non riescono, anche se IllegalArgumentException viene gettato e gli altri passaggi. Qualsiasi idea di che cosa manca ?? Ho modificato il test che non riesce a seguire e passa.
public void testSomething(){
try{
............ //line that throws exception
fail();
}catch(IllegalArgumentException e) {
}
}
Soluzione
Prithis solo qualcosa che ho notato la seconda prova non ha @Test annotazioni a tutti. Junit4 non esegue i test che non sono annotati anche se i nomi dei metodi di prova inizia con *** (a meno che naturalmente in realtà estende la classe TestCase, nel qual caso si comporta come un testcase JUNIT3.x)
Forse è il caso che il test non è in esecuzione a tutti (e, quindi, fa pensare che passa)?
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow