BaşlayınÜcretsiz Başlayın

Birim testi: Uyarı verme

Yazılım mühendisliğinde, bir işlemin çalışması çok uzun sürerse bir uyarı tetikleyerek kodun yeterince hızlı çalıştığından emin olmak yaygındır. Burada, bir AlertService'e bağlı olan DurationMonitor adlı bir sınıf veriliyor. 1 saniyeden (1000 milisaniye = 1 saniye) daha uzun bir süre aldığında AlertService üzerinde bir uyarı tetikler.

Uyarının gerçekten uzun süreler için tetiklendiğini ve bir saniyenin altındaki süreler için tetiklenmediğini doğrula.

Bu egzersiz

Java'da Teste Giriş

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Uzun süreler için alertService mock'unun çağrıldığını doğrula.
  • Örnek uzun süre için alertService üzerinde hangi metodun ve hangi argümanlarla çağrıldığını doğrula.
  • İkinci testte alertService'in çağrılmadığını doğrula.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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
        ____(____);
    }
}
Kodu Düzenle ve Çalıştır