Lý do tại sao khó kiểm tra một lớp singleton là rằng bạn không thể khởi tạo lại lớp cho mỗi lần kiểm tra, bởi vì nó chỉ có thể được khởi tạo một lần (và do đó cung cấp cho bạn rất nhiều công việc để đặt tất cả các giá trị một cách chính xác cho mỗi bài kiểm tra).
Tại sao kiểm tra singleton lại khó?
Thật khó để kiểm tra mã sử dụng singletons.
Bạn không thể kiểm soát việc tạo đối tượng singleton vì nó thường được tạo trong bộ khởi tạo tĩnh hoặc phương thức tĩnh. Do đó, bạn cũng không thể chế nhạo hành vi của cá thể Singleton đó.
Có vấn đề gì với người độc thân?
Singletons cản trở việc kiểm tra đơn vị: Một Singleton có thể gây ra sự cố cho viết mã có thể kiểm tranếu đối tượng và các phương thức liên kết với nó được kết hợp chặt chẽ đến mức không thể kiểm tra mà không viết một lớp đầy đủ chức năng dành riêng cho Singleton.
Nhược điểm của singleton trong kiểm thử đơn vị là gì?
Để chạy mã chứa các hạt đơn trong bộ khai thác thử nghiệm, chúng ta phải giải phóng thuộc tính singleton. Đây là cách chúng tôi làm điều đó. Bước đầu tiên là thêm một phương thức tĩnh mới vào lớp singleton. Phương thức này cho phép chúng tôi thay thế trường hợp tĩnh trong singleton.
Tại sao singleton lại can thiệp vào việc kiểm tra đơn vị?
Trong kiểm thử đơn vị, mỗi kiểm thử đơn vị phải độc lập với nhau. Một lý do khác khiến mô hình thiết kế Singleton khiến cuộc sống của bạn gặp khó khăn trong kiểm thử đơn vị là vì chúng vẫn còn trong bộ nhớ cho đến khi ứng dụng còn sốngDo đó, chúng vẫn tồn tại trạng thái miễn là ứng dụng vẫn ở trong bộ nhớ.