课程简介
测试驱动开发训练营以理论讲解结合案例演练,全方位梳理测试驱动开发的流程,帮助学员掌握整洁编码、单元测试与重构的技巧,从而使得学员能够在实际项目开发中合理运用测试驱动开发,提高编码质量,打造高效的开发团队,并在企业中有效推进测试驱动开发实践。
目标收益
培训对象
课程大纲
第一关 测试加油站 |
测试驱动开发的基础是正确地运用框架编写单元测试。要了解什么是单元测试,编写单元测试的价值,并能熟练运用单元测试框架。JUnit框架。 如何创建测试方法 如何运用Rule测试异常 如何运用Parameterized Data Mockito 何时需要进行Mock Mock查询式方法 Mock命令式方法 Mock异常抛出 验证对象的协作 测试数据准备 各种格式的测试数据 模板的使用 测试数据准备的辅助方法 |
第二关 对象健身操 |
测试驱动开发的驱动力在于任务分解和测试先行,但如果不具备足够的面向对象设计能力,就会影响到对职责的判断,无法做到有效而合理的对象协作,也无法判断该在何时对功能进行抽象。 OO的核心要素 理解封装的意义 高内聚松耦合 继承与委派 抽象与多态 SOLID原则 单一职责原则 开放封闭原则 Liskov替换原则 接口隔离原则 依赖倒置原则 |
第三关 重构工具箱 |
测试驱动开发的节奏是“红-绿-重构”,没有重构,测试驱动开发就无法保证代码质量,如果不及时发现代码的坏味道,就会导致“破窗效应”,直到代码腐化至难以重构的地步,测试驱动开发带来的红利就被抵消殆尽了。 代码的坏味道 Long Method Feature Envy Switch Statement 迪米特法则 重构手法运用 Rename Method Extract Method Move Method Extract Class Push Member Down |
演练 演练案例:Movie Store 第四关 TDD修炼 |
在具备了单元测试、面向对象设计与重构知识之后,就可以开始TDD的训练了。TDD的工作主要分为任务分解与测试驱动,开发人员需要进行实战演练才能真正体会TDD的好处。本部分将通过一个完整的案例进行实操训练。 TDD知识 TDD核心 TDD三大定律 FIRST原则 TDD Kata 实战案例:Guess Number 任务分解 开始第一个任务 Specification By Example 测试驱动开发的驱动力 Given-When-Then模式 CQS原则 信息专家模式 命名规则 单一职责原则 开始第二个任务 开始第三个任务 开始第四个任务 测试驱动开发需要事先设计吗? 寻找职责的承担者 开始第五个任务 运用依赖注入框架 |
第五关 重构到模式 |
通过识别代码的坏味道,然后利用重构手法改进代码,逐步形成设计模式,可以有效地避免过度设计,保证编码实现的恰如其分。 常用设计模式 工厂模式 装饰器模式 适配器模式 模板方法模式 策略模式 访问者模式 职责链模式 重构到模式实践 重构到策略模式 重构到模板方法模式 重构到装饰器模式 重构到职责链模式 重构到MVC模式 重构到访问者模式 重构到适配器模式 |
第一关 测试加油站 测试驱动开发的基础是正确地运用框架编写单元测试。要了解什么是单元测试,编写单元测试的价值,并能熟练运用单元测试框架。JUnit框架。 如何创建测试方法 如何运用Rule测试异常 如何运用Parameterized Data Mockito 何时需要进行Mock Mock查询式方法 Mock命令式方法 Mock异常抛出 验证对象的协作 测试数据准备 各种格式的测试数据 模板的使用 测试数据准备的辅助方法 |
第二关 对象健身操 测试驱动开发的驱动力在于任务分解和测试先行,但如果不具备足够的面向对象设计能力,就会影响到对职责的判断,无法做到有效而合理的对象协作,也无法判断该在何时对功能进行抽象。 OO的核心要素 理解封装的意义 高内聚松耦合 继承与委派 抽象与多态 SOLID原则 单一职责原则 开放封闭原则 Liskov替换原则 接口隔离原则 依赖倒置原则 |
第三关 重构工具箱 测试驱动开发的节奏是“红-绿-重构”,没有重构,测试驱动开发就无法保证代码质量,如果不及时发现代码的坏味道,就会导致“破窗效应”,直到代码腐化至难以重构的地步,测试驱动开发带来的红利就被抵消殆尽了。 代码的坏味道 Long Method Feature Envy Switch Statement 迪米特法则 重构手法运用 Rename Method Extract Method Move Method Extract Class Push Member Down |
演练 演练案例:Movie Store 第四关 TDD修炼 在具备了单元测试、面向对象设计与重构知识之后,就可以开始TDD的训练了。TDD的工作主要分为任务分解与测试驱动,开发人员需要进行实战演练才能真正体会TDD的好处。本部分将通过一个完整的案例进行实操训练。 TDD知识 TDD核心 TDD三大定律 FIRST原则 TDD Kata 实战案例:Guess Number 任务分解 开始第一个任务 Specification By Example 测试驱动开发的驱动力 Given-When-Then模式 CQS原则 信息专家模式 命名规则 单一职责原则 开始第二个任务 开始第三个任务 开始第四个任务 测试驱动开发需要事先设计吗? 寻找职责的承担者 开始第五个任务 运用依赖注入框架 |
第五关 重构到模式 通过识别代码的坏味道,然后利用重构手法改进代码,逐步形成设计模式,可以有效地避免过度设计,保证编码实现的恰如其分。 常用设计模式 工厂模式 装饰器模式 适配器模式 模板方法模式 策略模式 访问者模式 职责链模式 重构到模式实践 重构到策略模式 重构到模板方法模式 重构到装饰器模式 重构到职责链模式 重构到MVC模式 重构到访问者模式 重构到适配器模式 |