tôi bắt đầu sử dụng động cá nhân accessor tính năng mà là một phần của gói NuGet Chaining Assertion for MSTest và tôi khá hài lòng với nó. Một trong những mất rất nhiều đánh máy nhưng ít nhất là cú pháp vẫn có thể đọc được. Tính năng này hoạt động với tính năng động. Ngoài ra còn có các gói cho các khuôn khổ thử nghiệm khác. Mã kiểm tra trông giống như sau:
var target = CreateMyObjectUnderTest();
dynamic dynamicTarget = target.AsDynamic();
Assert.AreEqual("abc", dynamicTarget.MyPrivateProperty);
Assert.AreEqual("xyz", dynamicTarget.PrivateMethod(123));
Tôi đã thực hiện theo cách này trước khi các bộ phận phụ trợ Privat được giới thiệu. Thanx! – llasarov
Tôi thấy nó thú vị mà nhiều người trong số các.NET Framework hội đồng hiển thị InternalsVisibleTo thuộc tính trong Reflector. – bryanbcook
Dường như có vấn đề với khung Fakes. Bạn không thể shim lớp nội bộ, ngay cả với InternalsVisibleTo thiết lập chính xác. PrivateObject.Invoke cũng không thực sự là một lựa chọn. Đáng buồn thay, trong việc loại bỏ hỗ trợ cho người truy cập, họ đã loại bỏ một cách có thể hoạt động để giảm bớt một lớp nội bộ. – Finster