CommencerCommencer gratuitement

Gérer les exceptions : traitement des messages

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

Dans cet exercice, vous allez vous entraîner à 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 lève une RuntimeException personnalisée si la chaîne est null. Votre tâche est d’écrire des tests unitaires pour cette méthode.

Cet exercice fait partie du cours

Introduction aux tests en Java

Afficher le cours

Instructions

  • 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 vérifier que l’exception levée est une instance de la classe RuntimeException.
  • Indiquez la classe attendue de l’exception.
  • Utilisez l’assertion appropriée pour vérifier le message de l’exception.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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