测试驱动开发(TDD)和测试驱动设计(TDD)是相同的吗?

20
我开始学习测试驱动开发。我已经阅读了很多有关TDD的文章。有些人称其为测试驱动开发,而其他人则称其为测试驱动设计。它们是同一件事吗?我觉得它们是一样的,但如果不是,主要的区别是什么?

2
那么在实际应用中,它们之间有什么区别呢? - Andy Waite
3个回答

12

测试驱动开发是一种描述编写代码的实践。

测试驱动设计提出了一个额外的主张:遵循这个实践会带来良好的(整体)设计。


2
它们是同一件事,但测试驱动设计可能被认为是更好的术语,因为它指出TDD不仅仅是编写经过测试的代码,还可以找到良好的设计。不幸的是,几乎没有人再使用测试驱动设计这个术语了。 - Lutz Prechelt

8

1
Ralf Westphal的文章很棒,但仍然没有回答这个问题。 - Peter Kofler

3

测试驱动开发是在编写生产代码之前编写测试。其目标是生成所谓的“可执行要求”,它关注的是编写足够的代码来满足需求。

如果您使用像Moq这样的模拟框架,您将被迫根据控制反转原则构建代码,使用依赖注入,这被认为是一种良好的实践,因为它减少了代码的“脆弱性”,并促进了解耦合在解决方案的微观层面。

因此,回答你的问题,TDDevelopment更多地涉及使用任何您想使用的工具在代码中实现需求。TDDesign是单元测试演化的下一步,它通过采用Moq等模拟框架来强制实施良好的设计。使用TDDesign生成的代码保证符合像Spring这样的IoC容器的要求。

TDDev不错... 但TDDesign更好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接