1

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

4

1 回答 1

0

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

例如,如果您有要测试的类“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框架

于 2012-06-27T18:42:40.650 回答