Tôi là một người mới bắt đầu thử nghiệm mã, và là một assert
con điếm trước đây. Một điều khiến tôi lo lắng khi thử nghiệm đơn vị là thường yêu cầu bạn tạo public
(hoặc ít nhất internal
) các trường có thể là private
khác, để hủy readonly
bỏ chúng, tạo private
phương thức protected virtual
thay thế, v.v ...
Gần đây tôi đã phát hiện ra rằng bạn có thể tránh điều này bằng cách sử dụng những thứ như lớp PrivateObject để tích lũy bất cứ thứ gì trong một đối tượng thông qua sự phản chiếu. Nhưng điều này làm cho các bài kiểm tra của bạn ít được bảo trì hơn (mọi thứ sẽ thất bại khi thực hiện thay vì thời gian biên dịch, nó sẽ bị phá vỡ bởi một đổi tên đơn giản, khó gỡ lỗi hơn ...). Ý kiến của bạn như thế nào ? Các thực tiễn tốt nhất trong thử nghiệm đơn vị liên quan đến hạn chế truy cập là gì?
chỉnh sửa: xem xét ví dụ rằng bạn có một lớp với bộ đệm trong một tệp trên đĩa và trong các bài kiểm tra của bạn, bạn muốn ghi vào bộ nhớ thay thế.