1、从一开始就保证了代码的质量。鼓励开发人员仅编写能通过测试从而满足需求的代码。一个方法的代码越少,从逻辑上来说,其中包含错误的几率就越小。
2、无论是有意设计的还是巧合,大多数TDD 开发人员编写的代码都遵循SOLID 原则。SOLID 原则是一组帮助开发人员确保编写出高质量软件的编程实践。由TDD实践生成的这些测试是极为宝贵的,而那些作为副作用得到的高质量也是TDD 难以置信的重要好处。
3、确保了代码与业务需求之间的高度一致性。如果需求是以测试方式给出,而且通过了所有测试,就可以很自信地说代码满足了业务需要。
4、鼓励创建更简单、针对性更强的库和API。TDD 对开发过程的改变很大,这是因为那些为库或API 编写接口的开发人员就是这个接口的第一用户。这就提供了有关如何编写该接口的新视角,而且马上就能知道这个接口是否有意义。
5、鼓励与企业沟通。要创建这些测试,需要多与业务用户交流。这样,就可以确保输入与输出的组合有意义,还可以帮助用户理解所开发的产品。
6、有助于从系统中清除那些没有用到的代码。大多数开发人员在编写应用程序时,设计界面和编写方法都是以可能发现的情况为基础的。这样就会导致系统中存在大量永远不会用到的代码或功能。这种代码的成本非常高,编写它们需要花费精力,即使这些代码什么也不做,也依然必须对其进行维护。它还使事情变得混乱,分散开发人员本应专注于重要工作代码的注意力。TDD 有助于从系统中清除这种寄生代码。
7、提供了内置的回归测试。在对系统和代码进行修改时,总会创建一套测试,用来确保将来的更改不会损害现在的功能。
8、终止了递归错误的出现。可能遇到过这种情景:正在开发一个系统时,相同的错误总是一次又一次重复出现。您可能觉得终于抓住并终止了这个错误,但在两个星期之后发现它又回来了。而利用TDD 方法,只要报告了一个缺陷,就会编写一个新的测试来揭露它。如果通过了这个测试而且一直能通过,说明已经真正消除了这一缺陷。
9、如果开发应用程序时能够时刻记着可测试性,所得到的结果就是一种开放的、可扩展的、灵活的体系结构。对于TDD 和松散耦合体系结构,依赖注入都是关键组件。这样所得到的系统,因为其体系结构而变得可靠、易于修改,并能对抗缺陷。
2024-01-18 10:42:45
3.5MB
测试驱动
1