Content
18 Lessons • 0 Quizzes • 0 Challenges
入门
- 1
简介与前置要求
构建测试驱动开发(TDD)的必要性
- 1
引言:构建测试驱动开发的必要性
- 2
编写糟糕的代码
- 3
识别不良代码
- 4
团队绩效下降
- 5
业务成果递减
- 6
总结与测验:为什么需要测试驱动开发(TDD) 在软件开发中,测试驱动开发(TDD)是一种先编写测试用例,再实现功能的开发方法。这种方法的核心理念是“先写测试,再写代码”,通过不断迭代来确保代码质量。 TDD 的主要优势包括: - 提高代码质量:由于每个功能都必须通过测试才能通过,因此代码更可靠、更少错误。 - 促进清晰的设计:编写测试迫使开发者思考接口和设计,从而获得更简洁、可维护的架构。 - 增强重构信心:有了全面的测试覆盖,开发者可以安全地重构代码,而不必担心引入新的缺陷。 - 改善文档效果:测试本身就是一种文档,能够说明代码应该如何使用。 TDD 的基本流程通常遵循以下三个步骤: 1. 编写一个失败的测试(Red):先写一个预期失败的测试,验证某个功能尚未实现。 2. 编写最小可行代码(Green):编写最简单的代码使测试通过。 3. 重构代码(Refactor):优化代码结构,提升可读性和性能,同时保持测试通过。 尽管 TDD 在初期可能增加开发时间,但从长远来看,它能显著减少调试时间、降低维护成本,并提高团队协作效率。 测验题: 1. 测试驱动开发的核心原则是什么? A. 先写代码,再写测试 B. 先写测试,再写代码 C. 只写单元测试,不写集成测试 D. 依赖手动测试验证功能 2. 下列哪一项不是 TDD 的优势? A. 提高代码质量 B. 降低开发速度 C. 便于重构 D. 提供清晰的设计思路 3. TDD 的三个基本步骤顺序正确的是? A. Green → Red → Refactor B. Red → Green → Refactor C. Refactor → Red → Green D. Red → Refactor → Green 答案: 1. B 2. B 3. B
使用TDD编写优质代码
- 1
简介:使用测试驱动开发编写优质代码
- 2
编写高质量代码
- 3
揭示设计缺陷
- 4
防止逻辑漏洞
- 5
避免未来缺陷并编写代码文档
- 6
摘要与测验:使用测试驱动开发编写优质代码
消除关于测试驱动开发的常见误解
- 1
引言:澄清关于测试驱动开发的常见误解
- 2
写测试让我变慢
- 3
测试无法防止所有错误
- 4
如何判断测试是否正确?
- 5
TDD 保证代码质量
- 6
我们的代码过于复杂,难以测试
- 7
我们直到写下代码之前,都不知道该测试什么。
- 8
总结与测验:澄清关于TDD的常见误解
使用 TDD 构建应用程序
- 1
简介:使用测试驱动开发构建应用程序
- 2
介绍 Wordz 应用程序
- 3
探索敏捷方法
- 4
摘要与测验:使用 TDD 构建应用程序
编写我们的第一个测试
- 1
简介:编写我们的第一个测试
- 2
开始使用TDD:准备-执行-断言
- 3
定义一个好测试
- 4
捕获常见错误并断言异常
- 5
保持封装
- 6
通过单元测试发现设计缺陷
- 7
初识Wordz
- 8
练习:扩展 Wordz
- 9
解决方案:扩展 Wordz
- 10
总结与测验:编写我们的第一个测试
- 11
挑战:基本字符串操作
- 12
解决方案:基础字符串操作
遵循TDD的节奏
- 1
简介:遵循测试驱动开发的节奏
- 2
遵循红-绿-重构循环
- 3
编写 Wordz 的下一个测试
- 4
通过双字母组合推进设计
- 5
总结与测验:遵循TDD的节奏
- 6
练习:电子邮件地址验证
- 7
解决方案:电子邮件地址验证
- 8
挑战:FizzBuzz
- 9
解决方案:FizzBuzz
驱动设计——测试驱动开发与SOLID原则
- 1
简介:驱动设计——测试驱动开发与SOLID原则
- 2
使用SOLID原则进行测试设计
- 3
通过单一职责原则简化维护
- 4
实现依赖倒置原则以提升灵活性
- 5
理解面向对象编程中的LSP
- 6
在面向对象编程中实现开闭原则(OCP)
- 7
有效运用接口隔离原则(ISP)
- 8
摘要与测验:TDD 与 SOLID
- 9
练习:转换形状面积计算
- 10
解决方案:转换形状面积计算
- 11
挑战:猪拉丁文
- 12
解决方案:猪拉丁文
测试替身——存根与模拟对象
- 1
简介:测试替身——存根与模拟对象
- 2
协作软件开发中的测试挑战
- 3
掌握测试挑战:使用测试替身与SOLID原则
- 4
使用桩(Stubs)进行受控测试
- 5
探索测试中的模拟对象
- 6
理解何时使用测试替身
- 7
使用 Mockito 自动化测试桩
- 8
使用 Mockito 实现高效的测试桩创建
- 9
使用 Mockito 测试异常处理
- 10
在 Wordz 中测试错误情况
- 11
总结与测验:测试替身——桩对象与模拟对象
- 12
挑战:成绩系统——桩对象与模拟对象
- 13
解决方案:成绩系统——桩对象与模拟对象
六边形架构——解耦外部系统
- 1
简介:六边形架构——解耦外部系统
- 2
外部系统的挑战
- 3
通过SOLID原则提升测试性与可维护性
- 4
在六边形架构中抽象外部系统
- 5
构建领域模型
- 6
使用FIRST原则进行单元测试:在六边形架构中的高效测试
- 7
使用六边形架构抽象数据库
- 8
摘要与测验:六边形架构——解耦外部系统
- 9
挑战:用于 CRUD 操作的六边形架构
- 10
解决方案:用于CRUD操作的六边形架构
FIRST 测试与测试金字塔
- 1
简介:FIRST 测试与测试金字塔
- 2
测试金字塔:一种有效的测试结构化方法
- 3
测试金字塔中的集成测试
- 4
理解端到端测试与用户验收测试
- 5
CI/CD流水线在优化软件开发流程中的应用
- 6
生产环境中的持续集成/持续交付流水线与测试环境
- 7
Wordz 中的集成测试
- 8
摘要与测验:FIRST 测试与测试金字塔
通过质量保证探索测试驱动开发
- 1
简介:通过质量保证探索测试驱动开发
- 2
探索测试驱动开发在软件质量保证中的作用
- 3
手动探索性测试——发现意外情况
- 4
自动化与人工审核的平衡
- 5
通过UI和UX测试打造以用户为中心的界面
- 6
通过安全操作与平衡实践进行开发
- 7
总结与测验:通过质量保证探索测试驱动开发
先测试、后测试、不测试
- 1
引言:先测试、后测试,或从不测试
- 2
先编写测试
- 3
TDD中延迟测试带来的风险
- 4
避免测试自动化的后果
- 5
TDD中的内向测试与外向测试
- 6
掌握基于六边形架构的测试策略
- 7
摘要与测验:先测试、后测试、不测试
驱动领域层
- 1
简介:驱动领域层
- 2
启动一个新的 Wordz 游戏实例
- 3
跟踪 Wordz 游戏的进度
- 4
在 Wordz 中通过模拟环境进行词汇选择的三角验证
- 5
使用模拟设置断言词汇选择并重构
- 6
为 Wordz 设计交互接口
- 7
通过重构实现游戏进度追踪的三角化
- 8
处理猜测、尝试次数以及游戏结束条件
- 9
Wordz 设计评估与优化
- 10
总结与测验:驱动领域层
- 11
挑战:猪拉丁语游戏领域层
- 12
解决方案:猪拉丁语游戏领域层
驱动数据层
- 1
简介:驱动数据层
- 2
使用 DBRider 进行数据库集成测试
- 3
用于数据库集成测试的生产代码
- 4
构建 WordRepository 和 GameRepository 适配器
- 5
摘要与测验:驱动数据层
驱动 Web 层
- 1
简介:驱动Web层
- 2
配置和测试 HTTP 端点
- 3
为 Wordz 应用程序构建 HTTP 服务器
- 4
在 Wordz 中优化游戏初始化流程
- 5
在 Wordz 中管理游戏启动错误
- 6
在Wordz游戏中处理多次猜测
- 7
Wordz 应用的核心组件集成
- 8
使用微服务架构玩转 Wordz 游戏
- 9
总结与测验:驱动 Web 层
总结
- 1
要点与未来方向
附录
- 1
技术要求
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:Anonymous User