Logo
☆☆☆☆☆
0.0
Intermediate
32h

Java中的测试驱动开发

测试驱动开发(TDD)和六边形架构使开发者能够构建出已知可靠且易于维护的代码。本课程所介绍的技术可确保代码以极少缺陷交付生产环境,并具备易于安全修改的结构。 你将首先学习测试驱动开发(TDD)的重要性,以及其带来的成本与收益,并通过糟糕代码的实例了解其对团队效率的影响。你将掌握良好代码与TDD如何及早发现设计和逻辑缺陷。你还将学习SOLID原则和六边形架构如何构建出高质量、可测试的代码,以及如何使用测试替身管理外部依赖。最后,你将把示例应用的领域逻辑与数据库层和Web层进行整合。 完成本课程后,你将熟练应对测试中的复杂问题,并掌握与外部系统集成的实用技术,从而显著提升你的开发实践水平。

18 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
Java中的测试驱动开发
测试驱动开发(TDD)和六边形架构使开发者能够构建出已知可靠且易于维护的代码。本课程所介绍的技术可确保代码以极少缺陷交付生产环境,并具备易于安全修改的结构。 你将首先学习测试驱动开发(TDD)的重要性,以及其带来的成本与收益,并通过糟糕代码的实例了解其对团队效率的影响。你将掌握良好代码与TDD如何...

WHAT YOU'LL LEARN

对自动化测试和测试驱动开发(TDD)需求的理解

Content

18 Lessons • 0 Quizzes • 0 Challenges

入门
  1. 1

    简介与前置要求

构建测试驱动开发(TDD)的必要性
  1. 1

    引言:构建测试驱动开发的必要性

  2. 2

    编写糟糕的代码

  3. 3

    识别不良代码

  4. 4

    团队绩效下降

  5. 5

    业务成果递减

  6. 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. 1

    简介:使用测试驱动开发编写优质代码

  2. 2

    编写高质量代码

  3. 3

    揭示设计缺陷

  4. 4

    防止逻辑漏洞

  5. 5

    避免未来缺陷并编写代码文档

  6. 6

    摘要与测验:使用测试驱动开发编写优质代码

消除关于测试驱动开发的常见误解
  1. 1

    引言:澄清关于测试驱动开发的常见误解

  2. 2

    写测试让我变慢

  3. 3

    测试无法防止所有错误

  4. 4

    如何判断测试是否正确?

  5. 5

    TDD 保证代码质量

  6. 6

    我们的代码过于复杂,难以测试

  7. 7

    我们直到写下代码之前,都不知道该测试什么。

  8. 8

    总结与测验:澄清关于TDD的常见误解

使用 TDD 构建应用程序
  1. 1

    简介:使用测试驱动开发构建应用程序

  2. 2

    介绍 Wordz 应用程序

  3. 3

    探索敏捷方法

  4. 4

    摘要与测验:使用 TDD 构建应用程序

编写我们的第一个测试
  1. 1

    简介:编写我们的第一个测试

  2. 2

    开始使用TDD:准备-执行-断言

  3. 3

    定义一个好测试

  4. 4

    捕获常见错误并断言异常

  5. 5

    保持封装

  6. 6

    通过单元测试发现设计缺陷

  7. 7

    初识Wordz

  8. 8

    练习:扩展 Wordz

  9. 9

    解决方案:扩展 Wordz

  10. 10

    总结与测验:编写我们的第一个测试

  11. 11

    挑战:基本字符串操作

  12. 12

    解决方案:基础字符串操作

遵循TDD的节奏
  1. 1

    简介:遵循测试驱动开发的节奏

  2. 2

    遵循红-绿-重构循环

  3. 3

    编写 Wordz 的下一个测试

  4. 4

    通过双字母组合推进设计

  5. 5

    总结与测验:遵循TDD的节奏

  6. 6

    练习:电子邮件地址验证

  7. 7

    解决方案:电子邮件地址验证

  8. 8

    挑战:FizzBuzz

  9. 9

    解决方案:FizzBuzz

驱动设计——测试驱动开发与SOLID原则
  1. 1

    简介:驱动设计——测试驱动开发与SOLID原则

  2. 2

    使用SOLID原则进行测试设计

  3. 3

    通过单一职责原则简化维护

  4. 4

    实现依赖倒置原则以提升灵活性

  5. 5

    理解面向对象编程中的LSP

  6. 6

    在面向对象编程中实现开闭原则(OCP)

  7. 7

    有效运用接口隔离原则(ISP)

  8. 8

    摘要与测验:TDD 与 SOLID

  9. 9

    练习:转换形状面积计算

  10. 10

    解决方案:转换形状面积计算

  11. 11

    挑战:猪拉丁文

  12. 12

    解决方案:猪拉丁文

测试替身——存根与模拟对象
  1. 1

    简介:测试替身——存根与模拟对象

  2. 2

    协作软件开发中的测试挑战

  3. 3

    掌握测试挑战:使用测试替身与SOLID原则

  4. 4

    使用桩(Stubs)进行受控测试

  5. 5

    探索测试中的模拟对象

  6. 6

    理解何时使用测试替身

  7. 7

    使用 Mockito 自动化测试桩

  8. 8

    使用 Mockito 实现高效的测试桩创建

  9. 9

    使用 Mockito 测试异常处理

  10. 10

    在 Wordz 中测试错误情况

  11. 11

    总结与测验:测试替身——桩对象与模拟对象

  12. 12

    挑战:成绩系统——桩对象与模拟对象

  13. 13

    解决方案:成绩系统——桩对象与模拟对象

六边形架构——解耦外部系统
  1. 1

    简介:六边形架构——解耦外部系统

  2. 2

    外部系统的挑战

  3. 3

    通过SOLID原则提升测试性与可维护性

  4. 4

    在六边形架构中抽象外部系统

  5. 5

    构建领域模型

  6. 6

    使用FIRST原则进行单元测试:在六边形架构中的高效测试

  7. 7

    使用六边形架构抽象数据库

  8. 8

    摘要与测验:六边形架构——解耦外部系统

  9. 9

    挑战:用于 CRUD 操作的六边形架构

  10. 10

    解决方案:用于CRUD操作的六边形架构

FIRST 测试与测试金字塔
  1. 1

    简介:FIRST 测试与测试金字塔

  2. 2

    测试金字塔:一种有效的测试结构化方法

  3. 3

    测试金字塔中的集成测试

  4. 4

    理解端到端测试与用户验收测试

  5. 5

    CI/CD流水线在优化软件开发流程中的应用

  6. 6

    生产环境中的持续集成/持续交付流水线与测试环境

  7. 7

    Wordz 中的集成测试

  8. 8

    摘要与测验:FIRST 测试与测试金字塔

通过质量保证探索测试驱动开发
  1. 1

    简介:通过质量保证探索测试驱动开发

  2. 2

    探索测试驱动开发在软件质量保证中的作用

  3. 3

    手动探索性测试——发现意外情况

  4. 4

    自动化与人工审核的平衡

  5. 5

    通过UI和UX测试打造以用户为中心的界面

  6. 6

    通过安全操作与平衡实践进行开发

  7. 7

    总结与测验:通过质量保证探索测试驱动开发

先测试、后测试、不测试
  1. 1

    引言:先测试、后测试,或从不测试

  2. 2

    先编写测试

  3. 3

    TDD中延迟测试带来的风险

  4. 4

    避免测试自动化的后果

  5. 5

    TDD中的内向测试与外向测试

  6. 6

    掌握基于六边形架构的测试策略

  7. 7

    摘要与测验:先测试、后测试、不测试

驱动领域层
  1. 1

    简介:驱动领域层

  2. 2

    启动一个新的 Wordz 游戏实例

  3. 3

    跟踪 Wordz 游戏的进度

  4. 4

    在 Wordz 中通过模拟环境进行词汇选择的三角验证

  5. 5

    使用模拟设置断言词汇选择并重构

  6. 6

    为 Wordz 设计交互接口

  7. 7

    通过重构实现游戏进度追踪的三角化

  8. 8

    处理猜测、尝试次数以及游戏结束条件

  9. 9

    Wordz 设计评估与优化

  10. 10

    总结与测验:驱动领域层

  11. 11

    挑战:猪拉丁语游戏领域层

  12. 12

    解决方案:猪拉丁语游戏领域层

驱动数据层
  1. 1

    简介:驱动数据层

  2. 2

    使用 DBRider 进行数据库集成测试

  3. 3

    用于数据库集成测试的生产代码

  4. 4

    构建 WordRepository 和 GameRepository 适配器

  5. 5

    摘要与测验:驱动数据层

驱动 Web 层
  1. 1

    简介:驱动Web层

  2. 2

    配置和测试 HTTP 端点

  3. 3

    为 Wordz 应用程序构建 HTTP 服务器

  4. 4

    在 Wordz 中优化游戏初始化流程

  5. 5

    在 Wordz 中管理游戏启动错误

  6. 6

    在Wordz游戏中处理多次猜测

  7. 7

    Wordz 应用的核心组件集成

  8. 8

    使用微服务架构玩转 Wordz 游戏

  9. 9

    总结与测验:驱动 Web 层

总结
  1. 1

    要点与未来方向

附录
  1. 1

    技术要求

Certificate of Completion

Showcase your accomplishment by sharing your certificate of completion.

Course Author:Anonymous User

Reviews

Read reviews from students who have taken this course and share your own experience.

Reviews & Comments (0)