Я знаю, что вопрос касается NUnit, и я не хочу спорить, является ли это хорошей или плохой практикой для тестирования частных пользователей. Дело в том, что иногда это необходимо, особенно когда вам приходится иметь дело с устаревшим или плохо разработанным кодом, который вы не можете реорганизовать.
Итак, я хотел бы отметить, что Gallio / MbUnit предоставляет легкий API с именем Mirror для упрощения тестирования с членами закрытого типа .
Пример: следующий пример теста вызывает закрытый метод с именем SomePrivateMethod
в экземпляре foo
.
[Test]
public void SampleTest()
{
var foo = new Foo();
int actual = Mirror.ForObject(foo)["SomePrivateMethod"].Invoke();
Assert.AreEqual(123, actual);
}