课程简介
单元测试是开发软件产品过程中,与质量、设计相关最重要的基本工程实践,如果不会单元测试,很多重构无从下手。如果不会单元测试,无法驾驭测试驱动开发。
单元测试不是能运行就好,怎么写出好的单元测试,才是实际工作中的王道。让你的测试代码不再只是在代码层次,而是像有人在跟你描述需求场景一样。让需求变更时,你的测试维护成本降到最低。让你每次新增测试用例的时候,能用最快的速度加入一个新的场景。
实际工作中面对的永远是庞大复杂且盘根错节的遗留代码,这门课将通过实际的案例让你亲自动手,为这些拥有大量依赖的遗留代码,加上巧妙的隔离单元测试。
TDD 不是一个单一技能,而是一整门学问,要能在工作上灵活运用 TDD,绝对不是只有 Test-First 就等于TDD。这门课会让学员针对真实需求进行实例化分析、透过TDD 的练习,来深刻体悟TDD 如何帮助我们化繁为简、迭代式地进行产品增量的开发。
课程收益
1.后端Java语言和前端JavaScript语言的练习
2.JUnit、 Mockito JavaScript、 Jest框架的使用
3.7~8 个hands-on 练习,整个工作坊都通过实战演练来学习相关知识和技能。
受众人群
1. 实际工作中已经有许多痛点经验、被遗留代码摧残过,怕改错代码导致 regression 的工程师
2. 开发团队的 leader、还在动手写 code 的技术经理
3. 想把写代码这件事提升到艺术层次,提高自己设计能力的开发人员
4. 不写代码的经理也可以列席,可提问、体验课程过程,甚至与其他学员一起结对来做练习,这样能更好地了解这些实践并解除疑虑
课程周期
2天(12H)
课程大纲
时间 | 课程内容 |
第一天 | 代码热身 |
单元测试的依赖隔离 | |
单元测试的依赖隔离练习 | |
单元测试中的stub/mock | |
单元测试中的stub/mock练习 | |
什么是TDD | |
通过代码道场来实践和理解TDD | |
用实例化的方式来分析一个真实的需求 | |
学员实现这个需求,写代码和单元测试 | |
第二天 | 什么是重构 |
讲师演示:重构学员第二天完成的真实需求代码 | |
重构的总结和Q&A | |
学员重构自己第二天的练习代码 | |
讲师演示:用TDD实现同样的需求 | |
TDD的总结和Q& A | |
回顾 |