准备条件
以第1节教程的创建的目录和代码为基础进行讲解。如果没有看过第1节教程,请关注我,查看以往该系列的文章
这节教程主要讲解TDD+单元测试,BDD+集成测试
什么是TDD?
Test Driven Development 测试驱动开发
顾名思义,就是我们先根据需求去写测试用例,根据测试用例再去写我们的功能。当我们增加或者修改某一项需求的时候,首先修改的是测试用例,根据测试用例再去修改代码逻辑
步骤:
- 编写测试用例
- 运行测试,测试用例无法通过测试
- 编写代码,使测试用例通过测试
- 优化代码,完成开发
- 重复以上步骤
什么是BDD?
Behavior Driven Development 行为驱动开发
简单来说就是根据用户的行为进行开发,等到该功能开发完毕,再进行测试代码的编写
步骤:
- 编写代码
- 编写测试用例,测试无法通过
- 编写代码,使测试用例通过测试
- 优化代码,完成开发
- 重复以上步骤
什么是单元测试?
单元测试就是仅对一个单独的模块进行测试,不牵扯其他模块。单元测试一般和业务代码的耦合度较高,所以在前端一般用于UI组件,通用方法的测试等
什么是集成测试?
集成测试就是对几个相关联功能点一起测试,不仅限于一个模块,一般用于对用户行为模拟操作的的测试
TDD + 单元测试
TDD一般配合着单元测试一起使用,尤其是在UI组件或者Utils中的一些通用代码,每个代码块是独立的,不会与业务代码产生过高的耦合度
优势:
- 长期减少回归bug
- 先写测试再写代码质量更好(组织,可维护性)
- 测试覆盖率高
- 错误测试代码不容易出现
BDD + 集成测试
BDD一般配合着集成测试一起使用,模拟用户的操作一般涉及到几个模块的联动,因此用于在测试业务代码中较好
以上的组合并不是必须的,只是个人总结出来的一些方法,实际工作中根据需求随机应变
为什么要去写测试代码?
- 这个问题一开始学习这个教程的小伙伴布吉岛有没有思考过?有些时候业务代码10分钟写完,测试代码却要30分钟。真的有必要这样吗?
答案当然是否定的!!!每个项目紧急程度不同,如果过多的一味的追求代买测试覆盖率显然是不正确的。根据项目程度适度的进行测试,是最优解。当然一点测试代码不写也是糟糕的,测试代码比生产代码多,一开始可能比较浪费时间,随着项目的不断迭代更新,减少了回归测试浪费的时间,越到后期,优势越明显。 - 写测试代码能够增强项目的可维护性,减少bug的概率
- 修改项目时,更加安全
文章只是简单的介绍了TDD和BDD ,单元测试和集成测试,没有深入的进行探讨
下一节教程也就是jest最后一节教程了,vue实战项目
本人能力有限,文章可能会有不正确或者不恰当的部分,希望你可以指出