Teste de unidade: Alerta
Em engenharia de software, é comum garantir que o código seja rápido o suficiente disparando um alerta quando uma operação demora
demais para executar. Aqui, você recebe uma classe chamada DurationMonitor que depende de um AlertService. Quando ela recebe
uma duração maior que 1 segundo (1000 milissegundos = 1 segundo), dispara um alerta no AlertService.
Verifique que o alerta realmente é disparado para durações longas e não é disparado para durações abaixo de um segundo.
Este exercicio faz parte do curso
Introdução a Testes em Java
Instruções do exercicio
- Verifique se o mock
alertServiceé chamado para durações longas. - Verifique qual método de
alertServiceé chamado para o exemplo de duração longa e com quais argumentos. - Verifique, no segundo teste, que
alertServicenão é chamado.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
public class Main {
public static void main(String[] args) {
launchMockitoTestsAndPrint(DurationMonitorTest.class);
}
}
class DurationMonitorTest {
@Test
void recordDuration_triggersAlert_whenAboveLimit() {
AlertService alertService = mock(AlertService.class);
DurationMonitor monitor = new DurationMonitor(alertService);
monitor.recordDuration(1500);
// Verify alertService.trigger() was called with the expected message
____(alertService).____("Slow execution detected: 1500ms");
}
@Test
void recordDuration_doesNotTriggerAlert_whenUnderLimit() {
AlertService alertService = mock(AlertService.class);
DurationMonitor monitor = new DurationMonitor(alertService);
monitor.recordDuration(500);
// Verify alertService was not used
____(____);
}
}