Tại sao Mockito không chế nhạo các phương pháp riêng tư?
Thứ nhất, chúng tôi không giáo điều về việc chế giễu các phương pháp tư nhân. Chúng tôi chỉ không quan tâm đến các phương pháp riêng tư bởi vì từ quan điểm của việc thử nghiệm các phương pháp riêng tư không tồn tại. Dưới đây là một số lý do khiến Mockito không chế nhạo các phương pháp riêng tư:
Nó yêu cầu hack các trình tải lớp không bao giờ chống đạn và nó thay đổi api (bạn phải sử dụng trình chạy thử nghiệm tùy chỉnh, chú thích lớp, v.v.).
Rất dễ dàng để làm việc xung quanh - chỉ cần thay đổi khả năng hiển thị của phương thức từ riêng tư sang gói được bảo vệ (hoặc được bảo vệ).
Nó đòi hỏi tôi phải dành thời gian thực hiện và duy trì nó. Và nó không có ý nghĩa cho điểm # 2 và thực tế là nó đã được triển khai trong một công cụ khác (powermock).
Cuối cùng ... Chế giễu các phương pháp riêng tư là một gợi ý rằng có điều gì đó không ổn trong sự hiểu biết của OO. Trong OO, bạn muốn các đối tượng (hoặc vai trò) cộng tác chứ không phải các phương thức. Quên về pascal và mã thủ tục. Suy nghĩ trong các đối tượng.