tag atteso JUnit non funziona come previsto
-
18-09-2019 - |
Domanda
Ho il seguente test case in eclisse, utilizzando JUnit 4 che si rifiuta di passare. Che cosa potrebbe essere sbagliato?
@Test(expected = IllegalArgumentException.class)
public void testIAE() {
throw new IllegalArgumentException();
}
Questa testcase esatto è nata quando si cerca di testare il mio codice con il tag atteso non ha funzionato. Volevo vedere se JUnit passerebbe il test più semplice. Non lo fece.
Ho anche provato con eccezioni personalizzate come previsto, senza fortuna.
Soluzione
Il problema è che il vostro AnnounceThreadTest estende TestCase. Perché estende TestCase, il corridore JUnit sta trattando come test JUnit 3.8, e l'esecuzione del test perché inizia con la parola test, nascondendo il fatto che l'annotiation @Test in realtà non è utilizzato affatto.
Per risolvere questo problema, rimuovere il "si estende TestCase" dalla definizione di classe.
Altri suggerimenti
Invece di rimuovere estende TestCase, è possibile aggiungere questo per eseguire il test case con Junit4 che supporta annotazione.
@RunWith (JUnit4.class)
appena incontrato questo in IntelliJ utilizzando JUnit 4.4:
@Test(expected = IllegalArgumentException.class)
public void testExpected()
{
throw new IllegalArgumentException();
}
Passi perfettamente.
Ricostruire l'intero progetto e riprovare. C'è un'altra cosa che si sta facendo male. JUnit 4.4 funziona come pubblicizzato.