我必须为 C# 中的抽象类中的内部或私有方法编写单元测试。考虑一下:
Public Abstract Class MyAbstractClass
{
Private String MyMethod()
{
//Do Something
return "HI";
}
}
Run Code Online (Sandbox Code Playgroud)
还有,我的测试方法:
public void MyTestMethod()
{
var testProcessor = new Mock<MyAbstractClass>
{
CallBase = true
};
var privateType = new PrivateType(typeof(MyAbstractClass));
PrivateObject privateObject = new PrivateObject(testProcessor , privateType);
var resValue = (String)privateObject.Invoke("MyMethod");
Assert.AreEqual(resValue ,"HI");
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行测试方法时,出现以下错误:
System.Reflection.TargetException: Object does not match target type.
Run Code Online (Sandbox Code Playgroud)
怎么解决呢?