Tests Go avec la bibliothèque gt
Écrire du code de test Go type-safe en utilisant la bibliothèque gt. Idéal pour créer des fichiers de test et ajouter des assertions robustes.
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
Skills similaires
TDD Red-Green-Refactor
Skill qui guide Claude a travers le cycle TDD complet.
Audit d'Accessibilité Web
Réalise un audit d'accessibilité web complet selon les normes WCAG.
Générateur de Tests UAT
Génère des cas de test d'acceptation utilisateur structurés et complets.