我记得看过一篇文章,说Ruby实际上不需要依赖注入(DI)或依赖注入框架,因为类是开放的。因此,你可以简单地重写依赖项的构造函数,使其返回一个虚拟对象。
我非常新手Clojure和函数式编程。我想知道Clojure是否需要依赖注入,或者它可以因为类似/其他原因而不需要它。这里有一个具体的例子可以使用(随意指出我的设计不符合Clojure的惯用法):
想象一下,你正在开发一个网络爬虫/蜘蛛程序。 它需要遍历你下载的网页。这是一个带有副作用的操作。每次查询时,网页都可能会更改,你的互联网连接可能会断开等等。它找到网页上的所有链接,访问每个链接,然后以相同的方式遍历它。
现在,您想编写一个测试,模拟http客户端,以便它返回一个硬编码的字符串响应。如何在测试中调用程序的-main
并防止其使用真正的 http客户端?