如何验证Moq中的statc方法

时间:2016-01-29 14:37:54

标签: nunit moq

我是NunitMoq

的新手

我有一个像这样的静态类:

public static class StaticClass1
{
  public static void Prepare()
  {
    //some logic
  }
}

public static class StaticClass2
{
  public static void Initialize(some_parameter)
  {
    //some logic
    if (some_condition(some_parameter)) 
    {
      StaticClass1.Prepare();
    }
  }
}

我需要测试函数AccountService.Initialize(),其中我需要验证StaticClass1.Prepare()至少被调用一次

1 个答案:

答案 0 :(得分:0)

我认为,为了回答这个问题,我会说"你需要获得如何分层项目的经验"。

当单元测试一个方法时,你要对单个方法进行单元测试,并模拟依赖关系,正如你理解正确的那样。现在,将静态公共方法从一个类调用到另一个类中的另一个静态方法并不是最佳的,因为它使您很难将单元测试与他们应该测试的内容隔离开来(最终会测试两个完全不同的方法)相同的单元测试,而不是分离代码和单元测试。)

另一种方法是你在SOLID(依赖倒置原则)中打破D,你可以在这里阅读更多 - > https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)。你想依靠抽象而不是具体的课程。

最后,我认为我会有点自私,并分享我自己编写的文章系列的链接。它涉及测试驱动开发,并使用Moq作为单元测试工具,并着重于如何在分层和单元测试完整项目时进行思考(小规模)。我绝对肯定它会帮助您了解如何继续使用自己的项目和代码。

它基于4篇文章。该系列的第一篇是在这里 - > http://www.andreasjohansson.eu/technical-blog/getting-started-unit-testing-a-web-project-part-1-introduction-and-setting-up-the-project/

希望它有所帮助!