Bắt đầu ngayBắt đầu miễn phí

Unit test: Cảnh báo

Trong kỹ thuật phần mềm, việc đảm bảo mã chạy đủ nhanh thường được thực hiện bằng cách kích hoạt cảnh báo khi một thao tác mất quá nhiều thời gian. Ở đây, bạn có một lớp tên là DurationMonitor phụ thuộc vào AlertService. Khi nó nhận một khoảng thời gian dài hơn 1 giây (1000 milliseconds = 1 second), nó sẽ kích hoạt cảnh báo trên AlertService.

Hãy xác minh rằng cảnh báo thật sự được kích hoạt với các khoảng thời gian dài và không được kích hoạt với các khoảng thời gian dưới một giây.

Bài tập này là một phần của khóa học

Nhập môn Kiểm thử trong Java

Xem khóa học

Hướng dẫn bài tập

  • Xác minh mock alertService được gọi đối với các khoảng thời gian dài.
  • Xác minh phương thức nào trên alertService được gọi cho ví dụ khoảng thời gian dài, và với các đối số nào.
  • Xác minh trong bài kiểm thử thứ hai rằng alertService không hề được gọi.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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
        ____(____);
    }
}
Chỉnh sửa và Chạy Mã