用途:该技能用于在 Go 项目中编写测试,尤其针对 Bubbletea TUI 组件。触发场景包括编写 Go 单元测试、测试 Bubbletea TUI、创建表驱动测试、增加集成测试、使用 golden 文件测试。
主要能力:
- 表驱动测试:组织多组输入、期望值与 wantErr 的用例,通过 t.Run 逐条运行。
- Bubbletea 模型测试:直接调用 Model.Update() 模拟 tea.KeyMsg,验证状态与屏幕转换。
- Teatest 集成测试:用 teatest.NewTestModel 创建测试模型,tm.Send 发送按键,tm.WaitFinished 等待完成,tm.FinalModel 获取最终模型。
- Golden 文件测试:将 m.View() 输出与 testdata 中的 .golden 文件比较,支持 -update 标志更新。
- 决策辅助:区分纯函数、有副作用、返回错误、复杂逻辑,以及 TUI 状态、完整流程、视觉输出、按键处理等不同测试策略;对 os/exec 可 mock 或做集成测试,文件操作使用 t.TempDir()。
使用方式:技能提供示例代码与测试文件组织参考,如 model_test.go、update_test.go、view_test.go、teatest_test.go、comprehensive_test.go 及 testdata 目录。常用命令:go test ./...;go test -v ./internal/tui/...;go test -run TestNavigation;go test -cover ./...;go test -update ./...;go test -short ./...。
适用场景:Go 单元测试、Bubbletea TUI 状态与流程测试、表驱动用例、集成测试、golden 文件比对、覆盖率提升。
限制:资料未提供安装方式、收费、平台要求或具体依赖版本;示例针对 Gentleman.Dots 项目结构,其他项目需按实际调整。