Exceptions afhandelen: berichtverwerking
Net zoals het gebruiken en afhandelen van exceptions een vast onderdeel is van code schrijven, is het testen van deze exceptions cruciaal voor het testen van je project.
In deze oefening oefen je de syntax van JUnit’s class-instance-assertie. Je krijgt een methode die een string omzet naar hoofdletters, maar een eigen RuntimeException gooit als de string null is. De taak is om hier unittests voor te schrijven.
Deze oefening maakt deel uit van de cursus
Introductie tot testen in Java
Oefeninstructies
- Controleer in de successcenario-test dat het bericht is omgezet naar hoofdletters.
- Gebruik het juiste type assertie om te verifiëren dat de gegooide exception een instantie is van de klasse
RuntimeException. - Vul de verwachte klasse van de exception in.
- Gebruik de juiste assertie om het exceptionbericht te verifiëren.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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());
}
}