如何模拟私有静态内部类?

ZHE*_*HAO 1 c# justmock

我想问一个让我很烦的问题......

如何模拟MyPublicStaticMethod_C的返回值? MyPrivateStaticClass_B非常私密静态

public static partial class MyPublicStaticClass_A
{
    private static partial class MyPrivateStaticClass_B
    {
        public static int MyPublicStaticMethod_C(string para)
        {
            //...
        }
        //...
    }
}
Run Code Online (Sandbox Code Playgroud)

was*_*atz 5

我会在这里稍微无益,并说你不应该嘲笑它.编写测试时,您应该只测试您的公共接口,而不是私有.私有的东西是特定于实现的,你的测试不应该关心它.

如果你有一个调用私有方法的公共方法,并且你觉得你需要模拟私有方法才能正确测试你的类 - 这就是代码味道.您应该重构代码并将内部私有类作为接口,这样您就可以模拟它.

如果你确实找到了一种在当前状态下模拟它的方法,它很可能不会给你一个更好的测试系统 - 但它会让你得到难以维护的脆弱测试.