Si sta utilizzando un test runner Junit4? L'annotazione @Test non funzionerà se stai eseguendo un test runner junit3. Controlla la versione che stai utilizzando.
In secondo luogo, il metodo consigliato per verificare le eccezioni nel codice è utilizzare una regola (introdotta in junit 4.7).
@Rule
public ExpectedException exception = ExpectedException.none();
@Test
public void throwsIllegalArgumentExceptionIfIconIsNull() {
// do something
exception.expect(IllegalArgumentException.class);
exception.expectMessage("Icon is null, not a file, or doesn't exist.");
new DigitalAssetManager(null, null);
}
È possibile continuare a utilizzare il @Test (previsto = IOException.class), ma l'ha il vantaggio che, se viene generata un'eccezione prima che l'exception.expect è chiamato, allora il test fallirà sopra.
fonte
2011-09-26 11:42:24
Android utilizza una versione 3.x di junit quindi sembra che non ci sia altro modo - tranne per includere junit4 e passare a questo dalla junit Android. – Mark
Ho appena eseguito questo con junit: 4.12 e ho calcolato che exception.expectMessage ("Icona è null, non è un file o non esiste."); non fallisce il test se il messaggio previsto non corrisponde. – takesavy