BeforeEach: Alertas
Conforme a complexidade do seu projeto cresce, os testes podem exigir configurações cada vez mais longas. Antecipando isso, você revisita o DurationMonitorTest e usa as novas anotações para extrair parte da configuração do teste para um método setup().
Use @BeforeEach para executar a configuração antes de cada teste.
Este exercicio faz parte do curso
Introdução a Testes em Java
Instruções do exercicio
- Anote o método
setup()com a anotação correta. - Escreva a configuração necessária dentro dele:
AlertServiceé um mock eDurationMonitorrecebe esse mock.
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 {
private AlertService alertService;
private DurationMonitor monitor;
// Use the correct annotation to make this method execute before every test
@____
void setUp() {
// Set up the mock alertService and the monitor as you did in the earlier exercise
this.alertService = ____(____.class);
this.monitor = new ____(alertService);
}
@Test
void recordDuration_triggersAlert_whenAboveLimit() {
this.monitor.recordDuration(1500);
verify(this.alertService).trigger("Slow execution detected: 1500ms");
}
@Test
void recordDuration_doesNotTriggerAlert_whenUnderLimit() {
this.monitor.recordDuration(500);
verifyNoInteractions(this.alertService);
}
}