TimeProvider and FakeTimeProvider in .NET Tests
Khi test code phụ thuộc thời gian như invitation hết hạn sau 5 phút, việc sử dụng DateTime.Now gây khó khăn trong unit tests. .NET cung cấp TimeProvider và FakeTimeProvider để giải quyết vấn đề này, cho phép kiểm soát hoàn toàn giá trị thời gian trong môi trường test. FakeTimeProvider cho phép bạn thiết lập một thời gian cụ thể, ví dụ DateTime.Parse("2023-01-01 10:00:00"), để kiểm tra chính xác logic hết hạn mà không cần chờ đợi thời gian thực. Giải pháp này giúp loại bỏ dependency injection vào DateTime.Now và tạo ra test case đáng tin cậy, dễ bảo trì, đặc biệt quan trọng với các business logic phức tạp liên quan đến thời gian.
Bài viết giúp bạn kiểm tra mã phụ thuộc thời gian một cách hiệu quả bằng cách sử dụng TimeProvider và FakeTimeProvider trong .NET.




