Gestione delle eccezioni: elaborazione dei messaggi
Così come usare e gestire le eccezioni è parte integrante dello sviluppo, testare queste eccezioni è fondamentale per i test del tuo progetto.
In questo esercizio metterai in pratica la sintassi dell’asserzione di JUnit sulle istanze di classe. Ti viene fornito un metodo che converte una stringa in maiuscolo, ma lancia una RuntimeException personalizzata se la stringa è null. Il compito è scrivere i test unitari per questo comportamento.
Questo esercizio fa parte del corso
Introduzione al Testing in Java
Istruzioni dell'esercizio
- Verifica che il messaggio sia stato convertito in maiuscolo nel test dello scenario di successo.
- Usa il tipo corretto di asserzione per verificare che l’eccezione lanciata sia un’istanza della classe
RuntimeException. - Inserisci la classe attesa dell’eccezione.
- Usa l’asserzione corretta per verificare il messaggio dell’eccezione.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
public class Main {
public static void main(String[] args) {
launchTestsAndPrint(MessageProcessorTest.class);
}
}
class MessageProcessorTest {
@Test
void processMessage_returnsUppercase() {
String message = "error!";
String expected = "ERROR!";
String actual = MessageProcessor.processMessage(message);
// Assert the message is converted to uppercase
____(expected, actual);
}
@Test
void processMessage_throwsException_whenMessageIsNull() {
String message = null;
Exception expectedException = null;
try {
MessageProcessor.processMessage(message);
} catch (Exception e) {
expectedException = e;
}
// Assert the correct type of exception
____(RuntimeException.class, expectedException);
// Assert the correct exception message
____("Message cannot be null.", expectedException.getMessage());
}
}