Hantering av undantag: Meddelandebearbetning
Precis som att använda och hantera undantag är en central del av att skriva kod, är testning av dessa undantag avgörande för att testa ditt projekt.
I den här övningen får du öva på syntaxen för JUnits klassinstansassertioner. Du tilldelas en metod som konverterar en sträng till versaler, men som kastar ett anpassat RuntimeException om strängen är null. Uppgiften är att skriva enhetstester för den.
Den här övningen är en del av kursen
Introduktion till testning i Java
Övningsinstruktioner
- Kontrollera att meddelandet har konverterats till versaler i testet för lyckad körning.
- Använd rätt typ av assertion för att verifiera att det kastade undantaget är en instans av klassen
RuntimeException. - Ange den förväntade klassen för undantaget.
- Använd rätt assertion för att verifiera undantagets meddelande.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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());
}
}