依赖注入 将依赖传递给其他 对象 或 框架 (依赖注入器)。
依赖注入使测试更加容易。注入可以通过 构造函数 完成。
SomeClass()其构造函数如下:
public SomeClass() { myObject = Factory.getObject();}
问题 :如果
myObject涉及复杂的任务,例如磁盘访问或网络访问,则 很难
对其进行单元测试
SomeClass()。程序员必须进行模拟,
myObject并可能 拦截 工厂调用。
替代解决方案 :
myObject
作为参数传递给构造函数public SomeClass (MyClass myObject) {
this.myObject = myObject;
}
myObject可以直接通过,这使测试更加容易。
- 一种常见的替代方法是定义 空 *** 作构造函数 。依赖注入可以通过设置器来完成。(h / t @MikeVella)。
- Martin Fowler记录了第三种选择(h / t @MarcDix),其中 类显式实现了 程序员希望注入的依赖项 的接口 。
如果没有依赖注入,则很难在单元测试中隔离组件。
2013年,当我撰写此答案时,这是Google Testing
Blog的一个主要主题。这对我来说仍然是最大的优势,因为程序员在运行时设计中并不总是需要额外的灵活性(例如,对于服务定位器或类似的模式)。程序员在测试过程中经常需要隔离类。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)