Я использую PrivateObject
для тестирования приватных методов в одном из моих классов (, пожалуйста, нет лекций о том, как не тестировать приватные методы. Я решил это сделать. ) Затем вы можете использовать Assert.AreEqual()
проверить возвращаемое значение вашего частного метода ... если возвращаемое значение является базовым встроенным типом.Но что, если мой закрытый метод возвращает значение, которое само по себе является закрытой структурой?
[TestMethod]
public void TestPrivateMethod1() {
using (Interactors.Interactor interactor = new Interactors.Interactor()) {
var priv = new PrivateObject(interactor);
var privateType = priv.Invoke("myPrivateMethod", "foo");
Assert.AreEqual(12, privateType.SomeValue);
}
}
В этом случае приватная структура определяется внутри класса Interactors.Interactor
и возвращается в переменную privateType
,Но так как тестовый метод не знает об этом, я, очевидно, не могу скомпилировать код с privateType.SomeValue
в нем.Как я могу проверить значения этого закрытого возвращаемого типа?