前端自动化测试jest教程9-TDD+单元测试,BDD+集成测试

981 阅读3分钟

准备条件

以第1节教程的创建的目录和代码为基础进行讲解。如果没有看过第1节教程,请关注我,查看以往该系列的文章

这节教程主要讲解TDD+单元测试,BDD+集成测试

什么是TDD?

Test Driven Development 测试驱动开发
顾名思义,就是我们先根据需求去写测试用例,根据测试用例再去写我们的功能。当我们增加或者修改某一项需求的时候,首先修改的是测试用例,根据测试用例再去修改代码逻辑
步骤:

  1. 编写测试用例
  2. 运行测试,测试用例无法通过测试
  3. 编写代码,使测试用例通过测试
  4. 优化代码,完成开发
  5. 重复以上步骤

什么是BDD?

Behavior Driven Development 行为驱动开发
简单来说就是根据用户的行为进行开发,等到该功能开发完毕,再进行测试代码的编写 步骤:

  1. 编写代码
  2. 编写测试用例,测试无法通过
  3. 编写代码,使测试用例通过测试
  4. 优化代码,完成开发
  5. 重复以上步骤

什么是单元测试?

单元测试就是仅对一个单独的模块进行测试,不牵扯其他模块。单元测试一般和业务代码的耦合度较高,所以在前端一般用于UI组件,通用方法的测试等

什么是集成测试?

集成测试就是对几个相关联功能点一起测试,不仅限于一个模块,一般用于对用户行为模拟操作的的测试

TDD + 单元测试

TDD一般配合着单元测试一起使用,尤其是在UI组件或者Utils中的一些通用代码,每个代码块是独立的,不会与业务代码产生过高的耦合度

优势:

  1. 长期减少回归bug
  2. 先写测试再写代码质量更好(组织,可维护性)
  3. 测试覆盖率高
  4. 错误测试代码不容易出现

BDD + 集成测试

BDD一般配合着集成测试一起使用,模拟用户的操作一般涉及到几个模块的联动,因此用于在测试业务代码中较好

以上的组合并不是必须的,只是个人总结出来的一些方法,实际工作中根据需求随机应变

为什么要去写测试代码?

  • 这个问题一开始学习这个教程的小伙伴布吉岛有没有思考过?有些时候业务代码10分钟写完,测试代码却要30分钟。真的有必要这样吗?
    答案当然是否定的!!!每个项目紧急程度不同,如果过多的一味的追求代买测试覆盖率显然是不正确的。根据项目程度适度的进行测试,是最优解。当然一点测试代码不写也是糟糕的,测试代码比生产代码多,一开始可能比较浪费时间,随着项目的不断迭代更新,减少了回归测试浪费的时间,越到后期,优势越明显。
  • 写测试代码能够增强项目的可维护性,减少bug的概率
  • 修改项目时,更加安全

文章只是简单的介绍了TDD和BDD ,单元测试和集成测试,没有深入的进行探讨

下一节教程也就是jest最后一节教程了,vue实战项目

本人能力有限,文章可能会有不正确或者不恰当的部分,希望你可以指出

关注公众号,和我一起学习前端必备技能,前端自动化测试jest