c# - 如何在c#中使用moq.mock模拟调用静态类的方法

标签 c# unit-testing mocking moq

假设我有以下代码:

public class NumberClass
{
    public NumberClass()
    {
        DefaultNumber = 1;
    }
    public int DefaultNumber{set;get;}
}

public static class NumberSetup
{
    public static NumberClass GetDefaultNumber()
    {
        return new NumberClass();
    }
}

public class NumberSetupImplementation
{
    int FinalNumber;
    public void IncreaseNumber(int currentNumber)
    {
        FinalNumber = currentNumber + NumberSetup.GetDefaultNumber().DefaultNumber;
    }
}

我想在c#.net中使用moq.mock测试方法NumberSetupImplementation.IncreaseNumber,我面临的问题是该方法正在调用静态方法。

我已阅读this ,但我不知道如何在我的案例中实现它

最佳答案

您必须适本地设计代码才能利用起订量的优势。

通常,这意味着广泛的 IoC 和应用程序的清晰独立的层。 Moq 存在的主要原因是为了排除深层依赖关系,这样您就可以专注于独立于上下文来测试您创建的内容。不管有没有起订量,都是如此,只是让它变得更容易一点。

关于c# - 如何在c#中使用moq.mock模拟调用静态类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12311115/

相关文章:

javascript - 如何加粗和更改图表标题的字体大小

c# - 使用 Moq.Times 时出错? : operator

c# - asp.net C# 中的 SQL IN 运算符

c# - 从字符串 C# 解析 XML

c# - 我是否需要安装 Excel 才能使用 OleDB 提供程序查询电子表格?

unit-testing - 使用mockito模拟GWT EventBus

c# - 如何在 Unity Test Runner 中测试 Unity 协程

unit-testing - clojure.test/are 与 clojure.test/testing

c# - 与 Rhino Mocks 一起使用的最佳样式/语法是什么?

unit-testing - 从测试的类中桩一个方法来测试另一个方法