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