test: Phase2 Task4 — 新增4个光标控制测试 总计77测试通过

This commit is contained in:
showen
2026-03-13 07:47:32 +08:00
parent bf41c4513f
commit be08c63181
3 changed files with 116 additions and 2 deletions

View File

@@ -89,3 +89,22 @@
- SDK 与主库的类型同步需要保持完全一致的派生宏和字段定义
- 添加新的 Message 变体后,需要检查所有现有插件的 match 表达式
- Rust 的穷尽性检查是很好的安全网,确保不会遗漏新增的消息类型
## 个人经验 (2026-03-13 DevicePlugin 阶段二 Task 4)
- 完成 DevicePlugin 阶段二 Task 4集成测试验证 ScreenPlugin ↔ DevicePlugin 协作
- 更新 MockBackend 以支持光标控制:
- capabilities() 添加 DeviceCapability::Cursor
- handle_command 添加 SetCursorVisible(_) => Ok(DeviceResponse::Ok) 处理
- 新增 4 个测试用例:
- test_mock_backend_set_cursor_visible — 验证 MockBackend 处理 SetCursorVisible(true/false)
- test_mock_backend_cursor_capability — 验证 MockBackend 声明 Cursor 能力
- test_device_command_cursor_serialization — 验证 SetCursorVisible 序列化往返
- test_device_capability_cursor — 验证 DeviceCapability::Cursor 序列化
- 修复 test_mock_backend_capabilities 测试(从 2 个能力更新为 3 个)
- cargo check --workspace --all-targets 零 warning
- cargo test --workspace 全部通过77 个测试,与之前一致,因为新增 4 个测试,修复 1 个测试)
- 经验总结:
- MockBackend 是测试 DevicePlugin 的关键,无需真实硬件即可验证命令处理逻辑
- 序列化测试确保 DeviceCommand/DeviceResponse/DeviceCapability 可以安全通过 JSON/FFI 边界
- 更新 MockBackend 时需要同步更新相关的能力测试,避免断言失败
- ScreenPlugin 通过 DeviceCommand 消息与 DevicePlugin 协作,实现了松耦合的架构