Unit Test — 单元测试
187 suites
4,881 tests
~30s
FAST
- 测试 单个函数/方法 的输入输出
- 所有外部依赖全部 mock(DB、Redis、外部 API)
- 目录:
backend/tests/unit/
- 覆盖: Service 层 — payrollService, guestAuthService, ...
- 覆盖: 工具类 — error-loader, hash, validators
- 覆盖: 中间件 — auth-middleware, permission-middleware
- 举例:
hashPassword('abc') === '$2b$...'
- 举例:
calculateOvertime(records) === 2.5
API Test — 接口测试
97 suites
3,197 tests
~2min
FAST
- 测试 HTTP 请求/响应 的完整链路
- 用 supertest 或 mock req/res 模拟请求
- DB 层被 mock,不连真实数据库
- 目录:
backend/tests/api/
- 验证: 状态码 (200/400/401/403/404/500)
- 验证: 响应 JSON 结构和字段
- 验证: 参数校验和错误消息
- 验证: 中间件链 (auth + permission + handler)
Frontend Unit Test — 前端单元测试
74 + 33 suites
~2min
FAST
- 测试 React 组件、Hooks、Stores、整页渲染
- Jest (74 suites): 小组件、Hooks、工具函数
- Vitest (33 suites): 页面级组件渲染(*.integration.test.tsx)
- 两套框架都用 JSDOM + MSW mock API,同属前端单元层
- 目录:
frontend/web_app/src/__tests__/
- 验证: 组件渲染、用户交互、状态变更
- 验证: Hook 逻辑、Store 计算属性、页面整体功能
- 举例: 点击"取消"按钮 → 对话框关闭
- 举例: 打开 Admin Dashboard 页 → 验证各卡片渲染
Integration Test — 集成测试
62 suites
~10-15min
MEDIUM
- 测试 多层协作:API → Service → 真实 DB
- 连接真实 PostgreSQL,执行真实 SQL
- 用
--runInBand 串行执行避免冲突
- 目录:
backend/tests/integration/
- 验证: 数据真正写入和读取数据库
- 验证: 事务回滚、约束检查、并发控制
- 举例: 创建预约 → 查询 DB → 确认记录存在
- 举例: 日结 → 验证所有表的金额一致
E2E Test — 端到端测试
99 specs (Web) + 24 (Flutter)
~20-30min
SLOW
- 测试 用户真实操作流程:打开浏览器/App
- Web: Playwright 驱动 Chromium 浏览器
- Mobile: Flutter Integration Test 驱动真机/模拟器
- 所有层都是真实的(前端+后端+数据库)
- 验证: 完整的用户故事(登录 → 操作 → 验证结果)
- 举例: 打开预约页 → 选服务 → 选时间 → 确认 → 验证成功
- 举例: 员工 App 打卡 → 查看时间记录 → 申请补卡
- 失败时有截图和视频录制
Sync / Performance Test — 同步 & 性能测试
5 suites
~5-10min
MEDIUM
- Sync: 测试数据同步引擎的正确性
- Performance: 测试高负载下的性能表现
- 连接真实数据库,串行执行
- 超时设置更长 (60s / 120s)
- 目录:
backend/tests/sync/ & performance/
- 举例: 批量同步 1000 条预约的耗时和正确性