Agent Skills
› Gentleman-Programming/gentle-ai
› go-testing
go-testing
GitHub指导编写和审查Go测试,涵盖表格驱动测试、Bubbletea/TUI流测试(teatest)、黄金文件管理及覆盖率提升。提供决策门径和执行步骤,确保测试行为导向且可维护。
Trigger Scenarios
编写Go单元测试或集成测试
审查Go测试代码
添加测试覆盖率
使用teatest测试TUI交互
更新或验证黄金文件
Install
npx skills add Gentleman-Programming/gentle-ai --skill go-testing -g -y
SKILL.md
Frontmatter
{
"name": "go-testing",
"license": "Apache-2.0",
"metadata": {
"author": "gentleman-programming",
"version": "1.0"
},
"description": "Trigger: Go tests, go test coverage, Bubbletea teatest, golden files. Apply focused Go testing patterns."
}
Activation Contract
Load this skill when writing or reviewing Go tests, adding coverage, testing Bubbletea/TUI flows, using teatest, or updating golden files.
Hard Rules
- Prefer table-driven tests for multiple cases; use
t.Run(tt.name, ...). - Test behavior and state transitions, not implementation trivia.
- Use
t.TempDir()for filesystem tests; never rely on a real home directory. - Keep integration tests skippable with
testing.Short()when they run external commands or slow flows. - For Bubbletea, test
Model.Update()directly for state changes; useteatestonly for interactive flows. - Golden files must be deterministic; update only through the repo's
-updatepath and rerun tests without-update. - Use small mocks/interfaces around system or command execution boundaries.
Decision Gates
| Target | Test pattern |
|---|---|
| Pure function or parser | Table-driven unit test. |
| Error behavior | Explicit success and failure cases. |
| File operations | t.TempDir() plus focused assertions. |
| TUI state transition | Direct Model.Update() call with tea.Msg. |
| Full TUI interaction | teatest.NewTestModel(). |
| Rendered output | Golden file test. |
| Real external command | Integration test; skip in -short. |
Execution Steps
- Identify behavior under test and the smallest public boundary that proves it.
- Choose the test pattern from the decision gate.
- Name cases by scenario, not input mechanics.
- Assert outputs, errors, state, and side effects explicitly.
- Run the narrow package test first, then the relevant broader suite.
- For golden updates: run with
-update, inspect diff, then rerun without-update.
Output Contract
Report test files changed, scenarios covered, commands executed, golden files updated, and any skipped integration scope.
References
- references/examples.md — compact table-driven, Bubbletea, teatest, golden, and command examples.
Version History
- e01b114 Current 2026-07-25 06:59


