【发布时间】:2013-07-28 16:03:50
【问题描述】:
对于单元测试,我如何模拟使用工厂的类的依赖关系。
例如,如果我有以下课程:
public class SignalProcessor
{
ISignalFilter signalFilter;
public SignalProcessor()
{
this.signalFilter = SignalFilterFactory.GetInstance();
}
}
现在在 SignalProcessor 的单元测试中,我想模拟 ISignalFilter,即使用 ISignalFilter 的测试版本。如果我使用依赖注入而不是工厂,那么我可以将 TestSignalFilter 传递给 SignalProcessor 构造函数。但是如何在工厂案例中模拟 ISignalFilter?
【问题讨论】:
-
您应该考虑使用像 Castle 或 Unity 这样的 DI 框架(如果您还没有使用)。这些框架提供了将工厂外部化为 XML 或类(其本身可以进行单元测试)的工具。那么你可能只有一个构造函数“public SignalProcessor(ISignalFilter filter)”。
标签: unit-testing mocking factory