用途:为 Bubbletea v2 终端界面应用提供分层测试策略,示例来自 hive diff 查看器实现。
主要能力:按关注点分层——单元测试覆盖纯逻辑与状态转换,组件测试用合成消息验证 Update/View 行为,golden 文件测试做渲染输出的视觉回归,集成测试用 teatest 验证端到端工作流。
测试组织:测试文件与实现文件对应,命名如 <component>test.go、<component><feature>test.go;测试函数名 Test<Component><Method><Scenario>,golden 文件同名加 .golden,放在 testdata/ 目录。
用法要点:纯函数用 require.* 做前置断言、assert.* 做实际断言,覆盖空、单项、边界与错误条件;组件测试直接驱动 Update 并断言状态,异步操作用同步 helper(如 loadFileSync)执行命令并应用消息;golden 测试用 golden.RequireEqual,布局测试可 StripANSI,高亮测试保留 ANSI;表驱动配合 golden 可生成多场景文件。更新 golden 用 go test ./... -update。
外部工具:delta 等依赖不可用时用 t.Skip 跳过,或强制 deltaAvailable=false 测试降级路径;编辑器集成用 echo 等非交互命令。
限制与注意:不要测试实现细节,应测可观察行为;测试前必须调用 SetSize 设置真实尺寸;覆盖滚动等边界;集成测试只覆盖关键工作流。运行命令包括 mise run test、mise run coverage、go test ./cmd/hive/internal/tui/diff -run <TestName> 等。