Tratando exceções: processamento de mensagens
Assim como usar e tratar exceções é parte essencial de escrever código, testar essas exceções é vital para validar seu projeto.
Neste exercício, você vai praticar a sintaxe da asserção de instância de classe do JUnit. Você recebe um método que converte uma
string para maiúsculas, mas lança uma RuntimeException personalizada se a string for null. Sua tarefa é escrever testes de unidade
para ele.
Este exercicio faz parte do curso
Introdução a Testes em Java
Instruções do exercicio
- Verifique, no teste de sucesso, que a mensagem foi convertida para maiúsculas.
- Use o tipo correto de asserção para confirmar que a exceção lançada é uma instância de
RuntimeException. - Informe a classe esperada da exceção.
- Use a asserção correta para verificar a mensagem da exceção.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
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());
}
}