Notre avis
Écrire des tests Go avec la bibliothèque gt pour des assertions typées et sûres.
Points forts
- Assertions typées pour les slices, strings, erreurs, etc.
- Fail-fast avec Required() pour arrêter immédiatement en cas d'échec
- Contexte avec Describef() pour des messages d'erreur clairs
- Gestion simplifiée des retours de fonction avec R1/R2/R3
Limites
- Nécessite que la bibliothèque gt soit installée localement
- Ne couvre pas tous les cas d'usage possibles
- Peut être excessif pour des tests très simples où le package testing standard suffit
Lorsque vous écrivez des tests Go et souhaitez des assertions typées, lisibles et avec arrêt rapide en cas d'erreur.
Si la bibliothèque gt n'est pas disponible ou si les tests sont triviaux et ne nécessitent pas d'assertions complexes.
Analyse de sécurité
SûrThe skill uses only safe Bash commands (go list and file reads) restricted to the 'go' command scope. There are no destructive, exfiltration, or obfuscation operations.
Aucun point d'attention détecté
Exemples
Write a Go test for the function GetUsers that returns a slice of users. Use gt.Array to assert the length is 3.Add a test for ParseMessage that checks the returned string contains 'hello' using gt.String.Write a test for OpenFile that uses gt.NoError with Required() to fail fast if an error occurs.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
TDD Red-Green-Refactor
Testing
Skill qui guide Claude a travers le cycle TDD complet.
Audit d'Accessibilité Web
Testing
Réalise un audit d'accessibilité web complet selon les normes WCAG.
Générateur de Tests UAT
Testing
Génère des cas de test d'acceptation utilisateur structurés et complets.