模拟使用静态工厂的类的依赖关系

时间:2013-07-29 00:07:34

标签: unit-testing mocking factory

对于单元测试,如何模拟使用工厂的类的依赖关系。

例如,如果我有以下类:

public class SignalProcessor
{
  ISignalFilter signalFilter;

  public SignalProcessor()
  {
     this.signalFilter = SignalFilterFactory.GetInstance();
  }
}

现在在SignalProcessor的单元测试中,我想模拟出ISignalFilter,即使用ISignalFilter的测试版本。如果我使用Dependency Injection而不是Factory,那么我可以将TestSignalFilter传递给SignalProcessor构造函数。但是我如何在工厂案例中嘲笑ISignalFilter?

1 个答案:

答案 0 :(得分:0)

注入依赖项:

public class SignalProcessor
{
  ISignalFilter signalFilter;

  public SignalProcessor() : this(SignalFilterFactory.GetInstance()) {}

  public SignalProcessor(ISignalFilter filter)
  {
     this.signalFilter = filter;
  }
}