c# - 如何模拟私有(private)静态内部类?

标签 c# justmock

我想问一个很困扰我的问题...

如何模拟 MyPublicStaticMethod_C 的返回值?? MyPrivateStaticClass_B 确实是私有(private)静态

public static partial class MyPublicStaticClass_A
{
    private static partial class MyPrivateStaticClass_B
    {
        public static int MyPublicStaticMethod_C(string para)
        {
            //...
        }
        //...
    }
}

最佳答案

我要在这里稍微帮点忙,告诉你你不应该 mock 它。 在编写测试时,你应该只测试你的公共(public)接口(interface),而不是你的私有(private)接口(interface)。私有(private)内容是特定于实现的,您的测试不应该关心它。

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

如果您确实找到了一种在当前状态下对其进行模拟的方法,它很可能不会真正为您提供经过更好测试的系统 - 但是它会给您带来难以维护的脆弱测试。

关于c# - 如何模拟私有(private)静态内部类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28982631/

相关文章:

c# - 如何使用 JustMock 模拟构造函数?

c# - 尝试使用 JustMock 对事件进行单元测试

c# - 在 Justmock 中模拟构造函数调用对于 UrlHelper 失败

c# - 从 .doc MS Word 文件存储数学方程式并恢复它们

c# - 为什么 Clipboard.GetText 不起作用?

c# - LINQ where 子句中的三元运算符

c# - 通过 C#/Graph 禁用 MS Teams 邀请邮件

c# - 如何在 C# 中将 lambda 表达式与 asp.net DataList 一起使用