Я пытаюсь выполнить Unit Test класса, который имеет много внутренних функций. Они, очевидно, тоже нуждаются в тестировании, но мой проект «Тесты» является отдельным, главным образом потому, что он охватывает многие небольшие связанные проекты. То, что я до сих пор:Доступ к внутренним элементам через 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);
}
Это выплевывает все частные члены красиво, но по-прежнему не отображается внутренностей. Я знаю, что это возможно, потому что, когда я возился с автогенерируемыми тестами, которые Visual Studio может произвести, он спрашивал, что-то делать с отображением внутренних компонентов в проекте Test. Ну, теперь я использую NUnit и очень люблю его, но как я могу добиться того же?
Я согласен с использованием InternalsVisibleTo, но спасибо за ответ тоже :) – 2008-10-05 02:05:43
Нет проблем, хорошо иметь фактическое объяснение, даже если в вашем конкретном случае лучше подходит другой подход. – 2008-10-05 02:16:39
Просто FYI, страница, связанная с этим ответом, принадлежит мне, и мой URL-адрес изменился. Вот почему вы можете получить 404. Попробуйте эту обновленную ссылку http://jason.whitehorn.ws/2007/11/09/The-Wonders-Of-InternalsVisibleTo.aspx – 2008-11-23 00:57:00