在C#中对受保护的静态新方法进行单元测试

Clo*_*ble 0 c# static unit-testing scope protected

我正在尝试为受保护的方法编写一个包装类,我希望对其进行单元测试.我的问题是,原始方法被声明为protected static new阻止我访问基本方法,因为它是静态的.

有没有其他方法来编写这个包装器方法?如果没有哪个其他选项我必须在不改变其范围的情况下对此方法进行单元测试?

编辑:已添加代码:

public class DerivedClassToTest : BaseClass
{
    protected static new Type_A MehodeToTest()
    {
        Type_A A = new Type_A
        {
            //DoSomething...
        };
        return A;
    }
}
Run Code Online (Sandbox Code Playgroud)

我如何测试MehodeToTest

我试图从我的Unitest中的DerivedClassToTest派生,所以我可以访问Protected方法但它的静态因此我​​不能调用base.MethodeToTest.我如何访问MethodeToTest

谢谢.

Dar*_*rov 5

您可以在单元测试项目中编写一个包装器来公开该方法:

public class DerivedClassToTestWrapper : DerivedClassToTest
{
    public static Type_A MehodeToTestWrapped()
    {
        return DerivedClassToTest.MehodeToTest();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在你的单元测试中:

var actual = DerivedClassToTestWrapper.MehodeToTestWrapped();
Run Code Online (Sandbox Code Playgroud)

此外,我不太确定使用protected static new成员的设计目标是什么,但我必须承认,到目前为止我还没有在成员上看过这样的访问修饰符.