测试策略
OpenHuman 如何测试其产品——Vitest、cargo test、WDIO E2E。每种测试放在哪里。
层级
层
存放位置
测试内容
驱动层
决策树 - 我的测试该放哪儿?
变更是否位于 JSON-RPC 边界之后(在 `src/` 中)?
├─ 是 - 它是否跨领域或与外部服务交互?
│ ├─ 是 → Rust 集成(tests/*.rs)
│ └─ 否 → Rust 单元(在源码旁边)
└─ 否 - 变更位于 `app/` 中
├─ 它是否是一个纯函数、hook、slice,或独立组件?
│ └─ 是 → Vitest 单元(*.test.tsx 同目录)
└─ 它是否用户可见,并且跨越 UI ⇄ Tauri ⇄ sidecar ⇄ JSON-RPC?
├─ 是 → WDIO E2E(app/test/e2e/specs/*.spec.ts)
└─ 它是否属于 OS 级(TCC、Gatekeeper、安装、OS toast)?
└─ 是 → 手动冒烟检查清单失败路径要求
模拟政策
确定性规则
现有测试框架提供了什么
命名 + 结构约定
合并前门禁
无法通过驱动自动化 - 需要手动冒烟
将覆盖矩阵作为契约
拿不准时
最后更新于