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