Aan de slagGa gratis aan de slag

Exceptions afhandelen: berichtverwerking

Net zoals het gebruiken en afhandelen van exceptions een vast onderdeel is van code schrijven, is het testen van deze exceptions cruciaal voor het testen van je project.

In deze oefening oefen je de syntax van JUnit’s class-instance-assertie. Je krijgt een methode die een string omzet naar hoofdletters, maar een eigen RuntimeException gooit als de string null is. De taak is om hier unittests voor te schrijven.

Deze oefening maakt deel uit van de cursus

Introductie tot testen in Java

Cursus bekijken

Oefeninstructies

  • Controleer in de successcenario-test dat het bericht is omgezet naar hoofdletters.
  • Gebruik het juiste type assertie om te verifiëren dat de gegooide exception een instantie is van de klasse RuntimeException.
  • Vul de verwachte klasse van de exception in.
  • Gebruik de juiste assertie om het exceptionbericht te verifiëren.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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());
    }
}
Code bewerken en uitvoeren