Uji unit: Pemberitahuan
Dalam rekayasa perangkat lunak, umum untuk memastikan kode berjalan cukup cepat dengan memicu pemberitahuan saat suatu operasi memerlukan waktu terlalu lama untuk dieksekusi. Di sini, Anda diberikan sebuah kelas bernama DurationMonitor yang bergantung pada AlertService. Ketika menerima durasi lebih lama dari 1 detik (1000 milidetik = 1 detik), kelas ini memicu pemberitahuan pada AlertService.
Verifikasikan bahwa pemberitahuan benar-benar dipicu untuk durasi yang lama dan tidak dipicu untuk durasi di bawah satu detik.
Latihan ini adalah bagian dari kursus
Pengantar Pengujian di Java
Petunjuk latihan
- Verifikasikan bahwa mock
alertServicedipanggil untuk durasi yang lama. - Verifikasikan metode mana pada
alertServiceyang dipanggil untuk contoh durasi lama, dan dengan argumen apa. - Verifikasikan pada pengujian kedua bahwa
alertServicetidak dipanggil.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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
____(____);
}
}