Skip to content

前端单元测试指导手册(试行)

单元测试是什么

单元测试是针对程序中最小可测试单元进行的测试工作,比如函数、模块、组件等。单元测试的目的是验证代码的正确性,确保代码按照预期工作。

单元测试的意义

  1. 提高代码质量:单元测试可以提前发现代码中的问题,提高代码质量。
  2. 提高开发效率:单元测试可以减少调试时间,提高开发效率。
  3. 提高代码可维护性:单元测试可以确保代码在修改后仍然按照预期工作,提高代码的可维护性
  4. 提高代码可读性:单元测试可以提供代码的示例用法,提高代码的可读性

单元测试的编写

编写单元测试,需要明确几个问题:

  • 哪些代码需要进行单元测试?
  • 一个测试对象需要写哪些测试用例?
  • 怎么组织单元测试代码?应该在什么时候写单元测试?

哪些代码需要进行单元测试?

前端项目由 HTML、CSS、Javascript 三部分组成,但由于 HTML 和 CSS 代码是页面呈现效果的声明性代码,所以不需要进行单元测试。因此,需要进行单元测试的就只有 Javascript,其中包括 DOM 和 BOM 的操作代码。

Javascript 相关的代码很多,并不需要对全部的代码编写单元测试用例。从单元测试的定义中可知,单元测试是对程序中最小最基础单元进行的测试工作。简单来说就是那些被重复引用的代码。以 Vue 项目为例,主要包括:

  1. utils/中的导出的ClassFunction
  2. 公共组件:组件的渲染以及交互逻辑

一个测试对象需要写哪些测试用例?

测试用例是程序的执行结果。一条测试用例对应一种运行结果。 一个测试对象的测试用例主要包括:

  1. 程序的全部正确执行条件组合
  2. 程序全部错误执行条件组合
  3. 程序的全部边界条件组合

怎么组织单元测试代码?

一个测试对象对应一个测试文件。一个测试文件中包含该测试对象的全部测试用例。

应该在什么时候写单元测试?

在不影响项目进度的情况下,单元测试的编写应与业务实现一同进行。如果时间不充裕,则优先保证项目进度,过后再补充单元测试。

单元测试的实践

  1. 编写测试用例:根据需求编写测试用例,确保代码按照预期工作。
  2. 运行测试用例:使用测试框架运行测试用例,查看测试结果。
  3. 修复代码:根据测试结果修复代码,确保代码按照预期工作。
  4. 持续集成:将单元测试集成到持续集成流程中,确保代码在每次提交后都能通过测试。

单元测试的注意事项

  1. 测试用例要覆盖所有代码路径:确保测试用例覆盖所有代码路径,避免遗漏测试用例。
  2. 测试用例要简洁明了:测试用例要简洁明了,避免冗长的测试用例。
  3. 测试用例要可重复:测试用例要可重复,确保每次运行测试用例的结果都是一致的。
  4. 测试用例要独立:测试用例要独立,避免测试用例之间的相互影响。
  5. 测试用例要可维护:测试用例要可维护,确保测试用例在代码修改后仍然有效。
  6. 测试用例要可读:测试用例要可读,确保其他开发者能够理解测试用例的意图。
  7. 测试用例要可扩展:测试用例要可扩展,确保测试用例能够适应未来的需求变化。
  8. 测试用例要可自动化:测试用例要可自动化,确保测试用例能够自动化运行,提高测试效率。

参考