我正在寻找一个例子来说明测试静态类与实例类时的困难。有人可以提供吗?
使用其他类型的类被称为依赖于这些其他类型的类。在类中对方法进行单元测试时,通常会尝试测试该方法正在执行的操作,而不是依赖项正在执行的操作。设置对象以支持这些方案的常用方法是使用依赖项注入。依赖关系注入是提高可测试性的常见模式。静态类不能很好地与该模式配合使用,这使得使用静态类的类的单元测试变得困难。
例如,如果您有要测试的类"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 框架