CommencezCommencez gratuitement

Gestion des exceptions : traitement des messages

Tout comme l'utilisation et la gestion des exceptions font partie intégrante de l'écriture du code, tester ces exceptions est essentiel pour vérifier votre projet.

Dans cet exercice, vous allez pratiquer la syntaxe de l'assertion d'instance de classe de JUnit. On vous fournit une méthode qui convertit une chaîne en majuscules, mais qui lance une RuntimeException personnalisée si la chaîne est null. Votre tâche consiste à écrire des tests unitaires pour cette méthode.

Cette activité fait partie du cours

Introduction aux tests en Java

Voir le cours

Instructions de l’exercice

  • Vérifiez que le message a été converti en majuscules dans le test du scénario de réussite.
  • Utilisez le bon type d'assertion pour confirmer que l'exception lancée est une instance de la classe RuntimeException.
  • Indiquez la classe attendue de l'exception.
  • Utilisez la bonne assertion pour vérifier le message de l'exception.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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());
    }
}
Modifier et exécuter le code