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.

Cattura schermo: Schermata

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top