用途:为 Tauri 2 应用编写测试时提供分层策略与可复用模式,涵盖 Rust 命令逻辑、前端 IPC 调用、前后端契约以及端到端行为验证。
主要能力:按测试层级给出工具选择——Rust 单元测试用 cargo test 验证命令逻辑、状态管理与错误处理;前端单元测试用 Vitest/Jest 配合 @tauri-apps/api/mocks 验证 UI 组件与 IPC 调用;集成测试用 mockIPC 验证前后端契约;E2E 用 WebDriver(Selenium/Playwright)验证完整应用行为。提供 mockIPC、mockWindows、mockConvertFileSrc、clearMocks 等模拟函数的用途与作用范围说明。
使用方式:Rust 侧,带 #[tauri::command] 的命令本质是普通函数,可直接测试,无需 Tauri 运行时;返回 Result 的命令可断言 Ok/Err;使用 tauri::State 的命令应把业务逻辑抽成独立函数再测试;异步命令可用 #[tokio::test],需在 dev-dependencies 添加 tokio。前端侧,测试文件导入 @tauri-apps/api 模块前必须先 mock,否则在非 Tauri webview 环境会报错;调用 invoke() 前须先 mockIPC;事件监听需处理 listen() 返回的 Promise<UnlistenFn>。E2E 可先 cargo install tauri-driver,再启动 tauri-driver(默认监听 4444 端口),用 WebDriver 客户端控制应用;开发时可通过 WebviewWindowBuilder 的 .devtools(true) 启用 DevTools。
关键限制:必须在 afterEach() 中调用 clearMocks(),否则 mock 会在测试间泄漏导致结果不稳定;不要在单元测试中通过 IPC 运行命令来测试,应直接测试底层 Rust 函数。
适用场景:Tauri 2 桌面应用的命令测试、IPC 模拟、React 组件测试与 E2E 套件搭建。E2E 需平台特定的 WebDriver 配置,具体细节资料未完全展开。