# 初识单元测试

# 为什么要写测试

  1. 提高开发效率(更高级的调试手段)
  • 使用测试进行代码调试, 无需手动重复执行验证代码结果的前置步骤
  1. 对修改代码更加自信
  • 保证项目原有功能正常, 拒绝运气编程

  • 方便重构代码

  • 检测提交的代码

  1. 活文档
  • 方便代码阅读

    • 帮助新人快速了解代码功能和意义
  1. 改善程序设计
  • 单元测试驱动程序开发, 达到高内聚低耦合

# 单元测试的定义

传统的单元测试是一个测试对应一个函数, 颗粒度过小导致测试代码难以维护

单元级别的功能测试意在对一个功能的输入输出做测试, 忽略功能的内部细节(如一个或多个函数或是类的整体测试)

# 手动测试到单元测试转变

# 手动测试

手动测试关注点在页面视图的变化, 测试流程如下:

用户交互 --input--> 处理数据 --output--> 渲染 ----> 页面

# 单元测试

单元测试关注点是系统的状态和数据的变化, 测试流程如下:

调用函数 --input--> 处理数据 --output--> 验证数据

# 测试库对比(vitest 和 jest)

vitest 开箱即用, 并且如果项目使用 vite 作为打包工具可以共用配置文件, 降低配置负担.

jest 需要进行额外的安装和配置对新手不友好.

社区方面, vue3 团队已将测试代码全部从 jest 迁移到 vitest, 并且 vitest 的更新更为积极频繁.

vitest 在设计之初已考虑到 jest 迁移工作, 所以两者 API 接近, 使用方式并无太大差异.

# 前端测试图

image

Last Updated: 3/12/2025, 11:34:03 AM