小编Joy*_*Joy的帖子

如何在 C# 中对抽象类中的内部方法或私有方法进行单元测试?

我必须为 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)

怎么解决呢?

c# reflection

5
推荐指数
1
解决办法
2168
查看次数

标签 统计

c# ×1

reflection ×1