我在一些项目中使用了依赖注入,但我不完全理解其中的原因。我认为这在一定程度上是为了方便TDD --如果我们使用依赖项注入,那么软件的许多依赖项可以被注入/“模拟”,就像我们可以在没有依赖项的情况下测试它们,例如,在测试期间模拟的底层数据集,而不是实际提供的数据集。
这是对的还是我误解了?
发布于 2017-09-26 12:58:15
是的,适当的依赖注入极大地有利于测试和TDD,因为它允许更容易地测试单个组件/依赖项--模拟/研究每个依赖项而不影响应用程序的其他部分可能依赖或其他测试可能使用的任何全局变量或全局依赖项。
我发现为AngularJS应用程序编写单元测试和集成测试非常方便--只需准备服务或其他组件,然后将它们注入正在测试的组件中,就可以很方便地模拟各种测试预条件。
发布于 2017-09-26 16:55:44
TirePressureMonitoringSystem编码卡塔是一个很难测试的情况,没有依赖注入。它模拟一个报警器,它是轮胎压力系统的一部分。实现的传感器返回随机数据。任务是重组告警类,而不是传感器,使其具有可测试性。我认为kata展示了为什么DI在进行单元测试时如此重要。
小心不要掉进嘲弄的陷阱,在那里你嘲笑一切。你不想有太多的变化检测器试验。你想要测试行为,而不是实现。使以后更容易重构代码,而不是更难。
https://sqa.stackexchange.com/questions/29813
复制相似问题