我开始学习测试驱动开发。我已经阅读了很多有关TDD的文章。有些人称其为测试驱动开发,而其他人则称其为测试驱动设计。它们是同一件事吗?我觉得它们是一样的,但如果不是,主要的区别是什么?
测试驱动开发是一种描述编写代码的实践。
测试驱动设计提出了一个额外的主张:遵循这个实践会带来良好的(整体)设计。
测试驱动开发是在编写生产代码之前编写测试。其目标是生成所谓的“可执行要求”,它关注的是编写足够的代码来满足需求。
如果您使用像Moq这样的模拟框架,您将被迫根据控制反转原则构建代码,使用依赖注入,这被认为是一种良好的实践,因为它减少了代码的“脆弱性”,并促进了解耦合在解决方案的微观层面。
因此,回答你的问题,TDDevelopment更多地涉及使用任何您想使用的工具在代码中实现需求。TDDesign是单元测试演化的下一步,它通过采用Moq等模拟框架来强制实施良好的设计。使用TDDesign生成的代码保证符合像Spring这样的IoC容器的要求。
TDDev不错... 但TDDesign更好。