¿Qué hace esta skill?

La Testing en Go Skill proporciona patrones de testing idiomáticos en Go para escribir pruebas fiables y mantenibles. Abarca desde pruebas basadas en tablas y subtests hasta benchmarks, fuzzing y análisis de cobertura, siguiendo la metodología TDD (Test-Driven Development) con el flujo RED-GREEN-Refactor.

Table-Driven Tests
Crea pruebas basadas en tablas para lograr una cobertura exhaustiva con el mínimo código posible.
Benchmarks de Rendimiento
Mide el rendimiento de funciones críticas y detecta cuellos de botella con métricas de ns/op y allocs/op.
Fuzzing (Go 1.18+)
Valida el manejo de entradas inesperadas generando datos aleatorios que pueden provocar pánicos o errores.
Cobertura de Código
Genera perfiles de cobertura y visualiza qué porcentaje del código está cubierto por las pruebas.

Ejemplos de uso

🧪 TDD básico
Crea la función Add con TDD: primero el test que falle, luego la implementación mínima.
📊 Benchmark
Escribe un benchmark para la función Process que mida ns/op y allocs/op con 1000 elementos.
🎲 Fuzzing
Genera un fuzz test para ParseJSON que valide que Marshal nunca falla tras un Unmarshal exitoso.
🌐 Handler HTTP
Crea una prueba con httptest para HealthHandler que verifique que devuelve status 200.

Características

Metodología TDD estricta Sigue el flujo RED-GREEN-Refactor: define la firma, escribe el test que falla, implementa lo mínimo y refactoriza.
Pruebas basadas en tablas Patrón estándar de Go para cubrir múltiples casos con la mínima repetición de código.
Benchmarks con métricas Mide ns/op, B/op y allocs/op con ResetTimer para excluir el tiempo de preparación.
Fuzzing nativo (Go 1.18+) Genera entradas aleatorias con corpus inicial y guarda automáticamente los casos de fallo en testdata/fuzz/.
Cobertura visual Genera perfiles de cobertura con go test -coverprofile y visualízalos en el navegador con go tool cover.

Preguntas frecuentes

Para fuzzing nativo necesitas Go 1.18 o superior. El resto de patrones (table-driven tests, benchmarks, httptest) funcionan en versiones anteriores.
Sí. La skill implementa el ciclo RED-GREEN-Refactor: primero define la firma con panic("not implemented"), escribe el test que falla, implementa lo mínimo para que pase y luego refactoriza.
Ejecuta `go test -bench=BenchmarkProcess -benchmem` para ver métricas de rendimiento y asignaciones de memoria.
Sí. Todos los patrones (table-driven tests, httptest, fuzzing) son plantillas idiomáticas que puedes adaptar a tus funciones y paquetes.

Skills relacionadas

Mas skills de la misma categoria:

Testing en Go — Pruebas Idiomáticas y TDD con Claude AI

¿Prefieres escuchar el contenido? Genera la narración de audio con un clic.