Writing Tests with gt Library
Write type-safe Go test code using the gt library. Perfect for creating test files and adding robust assertions for various data types.
name: test-with-gt description: Write Go test code using the gt library. Use when writing tests, creating test files, or when the user asks to add tests for Go code. allowed-tools: Read, Bash(go:*)
Writing Tests with gt
When writing Go test code, use the gt library for type-safe assertions.
Step 1: Locate gt documentation
First, find where gt is installed and read its documentation:
GT_DIR=$(go list -m -f '{{.Dir}}' github.com/m-mizutani/gt 2>/dev/null)
If gt is available, read the relevant documentation from $GT_DIR/docs/:
docs/README.md- Overview and quick referencedocs/types/*.md- Detailed documentation for each test typedocs/patterns/*.md- Common patterns (method chaining, Required, Describe)
Step 2: Choose the right test type
| Data Type | Use | NOT |
|-----------|-----|-----|
| []T (slice) | gt.Array(t, arr).Length(3) | gt.Value(t, len(arr)).Equal(3) |
| string | gt.String(t, s).Contains("x") | gt.Bool(t, strings.Contains(s, "x")).True() |
| error | gt.NoError(t, err) | gt.Value(t, err).Nil() |
| int, float, etc. | gt.Number(t, n).Greater(5) | gt.Bool(t, n > 5).True() |
| map[K]V | gt.Map(t, m).HasKey("k") | manual check with gt.Bool |
| bool | gt.Bool(t, b).True() | gt.Value(t, b).Equal(true) |
Step 3: Apply common patterns
Use Required() for fail-fast
gt.NoError(t, err).Required() // Stop immediately if error
gt.Value(t, result).NotNil().Required() // Stop if nil
Use Describef() for context
gt.Array(t, users).
Describef("Users for tenant %s", tenantID).
Length(5)
Handle function returns with R1/R2/R3
result := gt.R1(parseJSON(input)).NoError(t)
gt.String(t, result.Name).Equal("Alice")
Quick Reference
Constructors: gt.Value, gt.Array, gt.Map, gt.Number, gt.String, gt.Bool, gt.Error, gt.NoError, gt.File, gt.Cast, gt.R1/R2/R3
Short aliases: gt.V, gt.A, gt.M, gt.N, gt.S, gt.B, gt.F, gt.C
Related skills
TDD Red-Green-Refactor
Skill that guides Claude through the complete TDD cycle.
Web Accessibility Audit
Performs a comprehensive web accessibility audit following WCAG standards.
UAT Test Case Generator
Generates structured and comprehensive user acceptance test cases.