IniziaInizia gratis

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

Visualizza il corso

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());
    }
}
Modifica ed esegui il codice