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
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());
}
}