白话结语

TDD主要包括两方面:测试先行和代码重构。测试主要针对单元(最小可测试软件元素)实施测试。

TDD属于需求分析和详细设计的范畴

测试驱动开发属于需求分析和详细设计范畴,当代码完成后,这些测试程序也成为单元测试的一部分。测试驱动开发颠覆了以往的需求分析-设计-编码-单元测试。而是从单元测试入手,用测试代码描述需求,编码的目的就是为了通过已经设计好的单元测试代码。用测试来驱动开发,开发的目的就是为了通过测试。

TDD能够带来的好处

  • 较少开发周期中的bug反馈

    • 测试先行,思路先行

  • 提高代码质量

    • 添加或修改代码更容易

  • 保证设计质量

    • 不断重构以改善设计

  • 集中精力每次开发一个功能

    • 确保每个方法都是可用且已被测试过

    • 确保及时发现出现问题的模块

  • 改善和验证设计

    • 以客户端的视角编写测试

    • 以客户端提供了示例代码

    • 更注重代码的设计

    • 为了使测试容易,需要实现松散耦合

    • 更少的Debug时间

TDD的大缺点:需要编写更多的测试代码

怎么做?简图

 TDD口号:red-green-ractor模式

  1. 不可运行:写测试用例,运行,无具体的实现,测试程序无法通过,所以报错 =》 红色模式

  2. 可运行:实现具体业务代码,尽快让这个程序工作,为此可能在code过程中使用一些不合理的方法。测试通过 =》 绿色模式

  3. 重构:重构代码,消除在让测试程序工作的过程中,产生的重复设计,优化设计机构,并之前的测试通过 =》 重构模式

Last updated