Tôi đang cố gắng để Unit Test một lớp có nhiều chức năng nội bộ. Đây rõ ràng là cần thử nghiệm, nhưng dự án thử nghiệm của tôi là riêng biệt, chủ yếu là bởi vì nó bao gồm nhiều dự án nhỏ, liên quan. Những gì tôi có cho đến thời điểm này là:Truy cập các thành viên nội bộ thông qua System.Reflection?
FieldInfo[] _fields =
typeof(ButtonedForm.TitleButton).GetFields(
BindingFlags.NonPublic | BindingFlags.Instance |
BindingFlags.DeclaredOnly);
Console.WriteLine("{0} fields:", _fields.Length);
foreach (FieldInfo fi in _fields)
{
Console.WriteLine(fi.Name);
}
Điều này kích thích tất cả các thành viên riêng độc đáo nhưng vẫn không hiển thị nội bộ. Tôi biết điều này là có thể, bởi vì khi tôi đã rối tung xung quanh với các thử nghiệm autogenerated Visual Studio có thể sản xuất, nó hỏi về một cái gì đó để làm với hiển thị internals để dự án thử nghiệm. Vâng, bây giờ tôi đang sử dụng NUnit và thực sự thích nó, nhưng làm thế nào tôi có thể đạt được điều tương tự với nó?
Tôi đồng ý với việc sử dụng InternalsVisibleTo, nhưng cũng xin cảm ơn câu trả lời :) –
Không có vấn đề gì, thật tốt khi có lời giải thích thực sự ngay cả trong trường hợp sử dụng cụ thể của bạn. –
Chỉ cần một FYI, trang được liên kết đến trong câu trả lời này là của tôi và URL của tôi đã thay đổi. Đó là lý do tại sao bạn có thể nhận được 404. Hãy thử liên kết cập nhật này http://jason.whitehorn.ws/2007/11/09/The-Wonders-Of-InternalsVisibleTo.aspx –