测试静态类 (C#) 时的困难示例



我正在寻找一个例子来说明测试静态类与实例类时的困难。有人可以提供吗?

使用其他类型的类被称为依赖于这些其他类型的类。在类中对方法进行单元测试时,通常会尝试测试该方法正在执行的操作,而不是依赖项正在执行的操作。设置对象以支持这些方案的常用方法是使用依赖项注入。依赖关系注入是提高可测试性的常见模式。静态类不能很好地与该模式配合使用,这使得使用静态类的类的单元测试变得困难。

例如,如果您有要测试的类"A",

并且它使用静态类"B"执行您不想测试的操作,例如访问数据库,则类 A 现在很难测试。

class A
{
    // this is hard to test because of the static call through B
    public void MethodToTest() 
    {
         // ...
         B.HitTheDatabase();
         // ...
    }
}

有一些方法可以解决这个问题,例如在 B 周围编写一个包装器并将其注入 A 中,或者使用 Moles 框架

最新更新