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
Instrucciones del ejercicio
- Verifica que se llame al mock
alertServicepara duraciones largas. - Verifica qué método de
alertServicese 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
____(____);
}
}