我试图重构C#代码,并希望使用Microsoft单元测试来确保我不破坏任何功能。 Microsoft单元测试建议使用不带参数的Public方法,而代码具有包含大量参数的私有方法。如何使用Microsoft Unit Testing Framework对具有输入参数的这些私有方法进行单元测试?
答案 0 :(得分:0)
您无权访问的测试方法很可能需要您使用反射。它可以是一个脆弱的模式,但请参阅以下内容以获取私有方法并使用参数调用它的示例: Reflection: How to Invoke Method with parameters
可能看起来像这样:
MethodInfo method = myObj.GetType().GetMethod(methodName);
object result = method.Invoke(myObj, new object[] { param1, param2 });
return result;
我个人不喜欢使用反射测试私有方法;我更喜欢使用这些私有方法的更大的公共方法。