Zacznij terazZacznij za darmo

Obsługa wyjątków: przetwarzanie wiadomości

Podobnie jak obsługa wyjątków jest nieodłączną częścią pisania kodu, testowanie tych wyjątków jest kluczowe dla testowania całego projektu.

W tym ćwiczeniu przećwiczysz składnię asercji instancji klasy w JUnit. Masz do dyspozycji metodę, która konwertuje ciąg znaków na wielkie litery, ale rzuca niestandardowy RuntimeException, jeśli ciąg wynosi null. Zadanie polega na napisaniu testów jednostkowych dla tej metody.

To ćwiczenie jest częścią kursu

Wprowadzenie do testowania w Javie

Zobacz kurs

Instrukcje do ćwiczenia

  • W teście scenariusza pomyślnego sprawdź asercją, że wiadomość została przekonwertowana na wielkie litery.
  • Użyj odpowiedniego rodzaju asercji, aby zweryfikować, że rzucony wyjątek jest instancją klasy RuntimeException.
  • Podaj oczekiwaną klasę wyjątku.
  • Użyj odpowiedniej asercji, aby zweryfikować komunikat wyjątku.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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());
    }
}
Edytuj i uruchom kod