概念:集成测试

验证多个模块或组件协同工作时的交互正确性的测试方法,介于单元测试和 E2E 测试之间。

解决的核心痛点:单元测试只验证孤立模块,E2E 测试难以定位问题,集成测试专注于模块间接口的正确性。


核心命题

  • 集成测试的核心价值是「接口验证」——确保模块间契约不被破坏
  • 集成测试比单元测试更接近真实使用,比 E2E 测试更容易定位问题
  • 集成测试的范围选择很重要,过大则失去优势,过小则验证不足

测试金字塔

flowchart TB
    A[单元测试] --> B[集成测试]
    B --> C[E2E 测试]

    style A fill:#e8f5e9
    style B fill:#fff3e0
    style C fill:#fce4ec
层级范围速度维护成本
单元测试单一函数
集成测试模块间接口
E2E 测试完整路径

集成测试 vs 其他测试

维度集成测试单元测试E2E 测试
范围模块间接口单一模块整个应用
速度
隔离性部分隔离完全隔离不隔离
失败定位较精确精确模糊

集成策略

策略说明适用场景
Big Bang所有模块一次性集成小型项目
自顶向下从上层开始逐步集成有明确层级结构
自底向上从底层开始逐步集成底层模块稳定
三明治上下两层同时向中间集成大型项目
持续集成每次提交自动集成所有项目

前端集成测试场景

场景说明
组件测试验证 React/Vue 组件的 props 和事件
模块间通信验证模块间的函数调用和数据传递
API 集成验证 API 调用和数据处理逻辑
路由集成验证路由配置和页面跳转

常见问题

  • 过度依赖 mock:失去集成测试的意义
  • 测试范围不清:集成 vs E2E 边界模糊
  • 环境差异:测试环境与生产环境不一致

知识图谱

  • 父级概念前端工程化 — 属于质量保障领域
  • 并列概念
  • 相关工具
    • Vitest — 支持组件测试
    • Testing Library — DOM 测试工具

参考延伸