Jednotkový test: upozornění
V softwarovém inženýrství je běžné hlídat, jestli kód běží dostatečně rychle – například tak, že se spustí upozornění, když operace trvá příliš dlouho. Zde máš k dispozici třídu DurationMonitor, která závisí na AlertService. Pokud obdrží dobu trvání delší než 1 sekunda (1 000 milisekund = 1 sekunda), spustí upozornění na AlertService.
Ověř, že se upozornění skutečně spustí při dlouhých dobách trvání a že se nespustí pro doby kratší než jedna sekunda.
Toto cvičení je součástí kurzu
Úvod do testování v Javě
Pokyny k cvičení
- Ověř, že mock
alertServiceje zavolán při dlouhých dobách trvání. - Zjisti, která metoda na
alertServicese volá pro ukázkovou dlouhou dobu trvání a s jakými argumenty. - Ve druhém testu ověř, že
alertServicenení vůbec zavolán.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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
____(____);
}
}