📘 Vue 测试·零搭建 单元 & 组件

📚 30 章 · 从零到 CI
01
测试基础认知 📖 概念
为什么需要单元测试 TDD / BDD Vue测试生态
02
环境搭建准备 ⚙️ 配置
Node.js 版本 npm/yarn/pnpm 创建Vue3项目
03
Vitest 初体验 ⚡ 上手
安装Vitest 第一个测试用例 运行与查看
04
Jest vs Vitest ⚖️ 对比
两者对比 迁移成本 为什么选Vitest
05
测试文件组织 📁 规范
目录结构 命名约定 源文件映射
06
describe 与 it 🧩 套件
测试套件/用例 嵌套作用域 生命周期钩子
07
断言基础 ✅ expect
toBe / toEqual toBeTruthy toBeFalsy
08
toBeGreaterThan toMatch toContain
09
异常与错误测试 ⚠️ 边界
toThrow 异步错误捕获 边界情况
10
异步测试 ⏳ 异步
回调 / Promise async/await 超时设置
11
Mock 函数入门 🎭 jest.fn()
模拟返回值 模拟实现 调用信息
12
Mock 模块 📦 jest.mock()
模拟第三方库 部分模拟 模块工厂
13
Spy 监听 👀 spyOn
追踪调用 调用信息 恢复原始实现
14
Timer 模拟 ⏱️ 假定时器
useFakeTimers setTimeout setInterval
15
安装与配置 核心API 渲染组件
16
组件挂载 🔩 mount
mount vs shallowMount 挂载选项 实例访问
17
DOM 查询 🔍 find / get
find / findAll get / getAll querySelector风格
18
事件触发 ⚡ trigger
原生/自定义事件 事件参数传递 trigger方法
19
Props 测试 📤 属性
传递props 验证渲染 props更新响应
20
Slots 测试 🧩 插槽
默认插槽 具名插槽 作用域插槽
21
表单交互 📝 v-model
输入框 / 复选框 下拉选择 v-model测试
22
计算属性测试 🧮 computed
直接测试计算属性 渲染结果验证
23
Watcher 测试 👁️ watch
触发watcher 验证副作用 异步watcher
24
模拟store 组件与store交互 模块化store
25
创建Pinia实例 actions/getters 组件集成测试
26
Vue Router 测试 🧭 路由
模拟路由 导航守卫 路由参数测试
27
异步组件测试 ⏳ Suspense
Suspense defineAsyncComponent 加载状态测试
28
自定义指令测试 ⚙️ 指令
指令生命周期 绑定值测试 更新测试
29
组合式函数测试 🪝 composables
独立测试 组件内测试 provide/inject模拟
30
配置CI流水线 覆盖率报告 阈值与质量门禁