TDD介绍

一、概念

TDD是测试驱动开发(Test-Driven Development)的简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。其主要确保以下两件事:

  • 确保所有的需求都能被照顾到。
  • 在代码不断增加和重构的过程中,可以检查所有的功能是否正确。

TDD具有以下优点:

  • 在任意一个开发节点都可以拿出一个可以使用,含少量bug并具一定功能和能够发布的产品。
  • 保障代码的正确性,能够迅速发现、定位bug。针对关键代码的测试集,以及不断完善的测试用例,为迅速发现、定位bug提供了条件。

其缺点是:

  • 增加代码量。测试代码是系统代码的两倍或更多,但是同时节省了调试程序及挑错时间。

二、步骤

TDD的步骤如下图所示:

TDD

文字描述如下:

  1. 先写测试代码,并执行,得到失败结果。

  2. 写实现代码让测试通过。

  3. 重构代码,并保证测试通过。

  4. 反复实行这个步骤 测试失败 -> 测试成功 -> 重构。

三、原则

  • 测试隔离。不同代码的测试应该相互隔离。对一块代码的测试只考虑此代码的测试,不要考虑其实现细节。
  • 及时重构。无论是功能代码还是测试代码,对结构不合理,重复的代码等情况,在测试通过后,及时进行重构。
  • 可测试性。功能代码设计、开发时应该具有较强的可测试性。其实遵循比较好的设计原则的代码都具备较好的测试性。比如比较高的内聚性,尽量依赖于接口等。
  • 先写断言。测试代码编写时,应该首先编写对功能代码的判断用的断言语句,然后编写相应的辅助语句。
  • 测试驱动。这个比较核心。完成某个功能,某个类,首先编写测试代码,考虑其如何使用、如何测试。然后在对其进行设计、编码。
  • 测试列表。需要测试的功能点很多。应该在任何阶段想添加功能需求问题时,把相关功能点加到测试列表中,然后继续手头工作。然后不断的完成对应的测试用例、功能代码、重构。一是避免疏漏,也避免干扰当前进行的工作。
  • 小步前进。把所有的规模大、复杂性高的工作,分解成小的任务来完成,每个功能的完成就走测试代码-功能代码-测试-重构的循环。通过分解降低整个系统开发的复杂性。
  • 一顶帽子。开发人员完成对应的工作时应该保持注意力集中在当前工作上,而不要过多的考虑其他方面的细节,保证头上只有一顶帽子。避免考虑无关细节过多,无谓地增加复杂度。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很高兴为您提供一些关于TDD开发的教程。我建议你可以先阅读《Test Driven Development: By Example》,这本书由Kent Beck编写,该书详细讲解了如何编写和实施TDD代码。此外,你还可以参考Test Driven Development(TDD)的官方文档,该文档提供了TDD介绍,以及TDD开发实践的介绍。 ### 回答2: TDD是测试驱动开发的缩写,它是一种软件开发方法论,将测试作为开发的基础。以下是一些关于TDD开发的教程: 1. 《测试驱动开发:实战与模式解析》- 由Kent Beck所著的书籍,是TDD的经典教程之一。书中详细介绍TDD的原则、实践和最佳实践,以及如何在实际项目中应用TDD。 2. 《敏捷软件开发:原则、模式与实践》- 由Robert C. Martin等人所著的书籍,介绍了敏捷开发和TDD的原则和模式。书中提供了丰富的实例和教程,帮助读者理解如何在实际项目中应用TDD。 3. 在线教程和教育平台- 例如Udemy、Coursera和edX等平台上提供了许多关于TDD开发的在线课程。这些课程通过视频、示例和练习等多种形式,提供了系统的TDD开发教学。 4. 博客和论坛- 在网上有很多关于TDD开发的博客和论坛,广大开发者会在这些平台上分享他们的经验和教学。通过搜索相应的关键词,可以找到很多与TDD相关的实践技巧和教程。 5. TDD实践项目- 了解如何在实际项目中应用TDD是理解和掌握TDD开发的关键。通过参与和贡献开源项目或开展自己的小型项目,可以逐步掌握TDD的实践技巧和方法。 总之,通过阅读相关书籍、参加在线课程、参与社区讨论和亲身实践等多种方式,可以提高我们在TDD开发方面的知识和技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值