เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Unit test: การแจ้งเตือน

ในการพัฒนาซอฟต์แวร์ เป็นเรื่องปกติที่จะต้องตรวจสอบว่าโค้ดทำงานได้เร็วพอ โดยการแจ้งเตือนเมื่อการดำเนินการใช้เวลานานเกินไป ในแบบฝึกหัดนี้ คุณจะได้รับคลาสชื่อ DurationMonitor ซึ่งขึ้นอยู่กับ AlertService เมื่อได้รับค่าระยะเวลาที่นานกว่า 1 วินาที (1000 มิลลิวินาที = 1 วินาที) คลาสนี้จะทริกเกอร์การแจ้งเตือนบน AlertService

ให้ตรวจสอบว่าการแจ้งเตือนถูกทริกเกอร์จริงสำหรับระยะเวลาที่นาน และไม่ถูกทริกเกอร์สำหรับระยะเวลาที่ต่ำกว่า 1 วินาที

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การทดสอบใน Java เบื้องต้น

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ตรวจสอบว่า mock ของ alertService ถูกเรียกใช้เมื่อระยะเวลานานเกินกำหนด
  • ตรวจสอบว่าเมธอดใดบน alertService ถูกเรียกใช้สำหรับระยะเวลาที่นาน และถูกเรียกด้วยอาร์กิวเมนต์ใด
  • ในเทสที่สอง ให้ตรวจสอบว่า alertService ไม่ถูกเรียกใช้

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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
        ____(____);
    }
}
แก้ไขและรันโค้ด