Comece agoraComece grátis

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

Ver curso

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 alertService nã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
        ____(____);
    }
}
Editar e Executar Código