- 红灯、绿灯、重构
- KISS原则:keep it simple stupid (让前述规范得以通过,且最简单、最简短)
- 总之,未使用TDD的情况下,单元测试的主要目标是验证既有代码;而在TDD中,单元测试是预先编写的,其主要目标是定义需求和设计,而验证只是副产品。与实现后再编写测试相比,这样做的一个结果是产品质量更高
- 测试不仅提供了验证代码的途径,还是可执行的文档
- 学会不去测试最终结果,而专注于当前要开发的单元。这是为了加强信任,因为我们必须信任他人编写的代码(辅助类)
- 仅当所有测试都通过后才重构。这样做的优点如下:重构是安全的
- 设计——难以测试说明设计不佳
- 设计原则:YAGNI;DRY;KISS;奥卡姆剃刀原理;SOLID
- 逐个规范并实现单元;编写规范时,我们将除当前单元外的东西都隔离开来,并验证单元正确调用了其他单元
- BDD。将TDD应用于功能测试和集成测试
- TDD的好处之一是,可执行文档始终是最新的。然而,仅有通过单元测试获得的文档还不够。所以我们需要BDD
- 只要时间足够长,所有传统文档都将过时,唯一准确的文档是我们编写的代码
- 大多数情况下,其他文档指的是较简略的文档,如概述、系统的总体目标、使用的技术、环境搭建、安装、构建、打包以及其他类型的数据。它们不提供详细信息,更像是指南和快速入门。对于这些文档,markdown格式的简单README文件通常是最佳的
- BDD:可作为需求,可执行,可对工作进行验证,人人都能编写和理解
- 遗留代码就是不带测试的代码
- 遗留代码存在的一种常见坏味是无法测试
- 重构不能引入任何新功能,即不应编写任何新规范
- “基本类型偏执”坏味指的是使用基本数据类型表示域概念。例如,使用字符串表示消息,使用整数表示金额,使用结构体/字典/散列表示对象
- 总之,持续集成、持续交付和持续部署依赖于与实现代码配套的测试,即依赖于TDD,还要求不使用分支或确保分支的存活时间极短(被频繁地合并到主干)
- 请别忘了重构代码,删除不再使用的旧开关,让代码更整洁、可读性更高
Java测试驱动开发
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 第十章 综述 TDD 的最佳实践 命名规约 1 将实现代码和测试代码分开src/main/javasrc/test...
- 本书简介 英文名称:Test-Driven Java Development作者:Viktor Farcic Al...
- 本文结构: 什么是 TDD 为什么要 TDD 怎么 TDD FAQ 学习路径 延伸阅读 什么是 TDD TDD 有...