Kom igångKom igång gratis

Hantering av undantag: Meddelandebearbetning

Precis som att använda och hantera undantag är en central del av att skriva kod, är testning av dessa undantag avgörande för att testa ditt projekt.

I den här övningen får du öva på syntaxen för JUnits klassinstansassertioner. Du tilldelas en metod som konverterar en sträng till versaler, men som kastar ett anpassat RuntimeException om strängen är null. Uppgiften är att skriva enhetstester för den.

Den här övningen är en del av kursen

Introduktion till testning i Java

Visa kurs

Övningsinstruktioner

  • Kontrollera att meddelandet har konverterats till versaler i testet för lyckad körning.
  • Använd rätt typ av assertion för att verifiera att det kastade undantaget är en instans av klassen RuntimeException.
  • Ange den förväntade klassen för undantaget.
  • Använd rätt assertion för att verifiera undantagets meddelande.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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());
    }
}
Redigera och kör kod