MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Verifikasikan bahwa mock alertService dipanggil untuk durasi yang lama.
  • Verifikasikan metode mana pada alertService yang dipanggil untuk contoh durasi lama, dan dengan argumen apa.
  • Verifikasikan pada pengujian kedua bahwa alertService tidak 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
        ____(____);
    }
}
Edit dan Jalankan Kode