ComenzarEmpieza gratis

Prueba unitaria: Alertas

En ingeniería de software, es habitual comprobar que el código sea lo suficientemente rápido activando una alerta cuando una operación tarda demasiado en ejecutarse. Aquí tienes una clase llamada DurationMonitor que depende de un AlertService. Cuando recibe una duración superior a 1 segundo (1000 milisegundos = 1 segundo), activa una alerta en AlertService.

Verifica que la alerta realmente se active para duraciones largas y que no se active para duraciones inferiores a un segundo.

Este ejercicio forma parte del curso

Introducción a las pruebas en Java

Ver curso

Instrucciones del ejercicio

  • Verifica que se llame al mock alertService para duraciones largas.
  • Verifica qué método de alertService se llama para el ejemplo de duración larga y con qué argumentos.
  • Verifica en la segunda prueba que no se llame a alertService.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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 y ejecutar código