Pruebas
13 pasos en 5 series de Go.
Las pruebas vienen en la toolchain, no en una biblioteca que eliges. Escribir pruebas, casos guiados por tablas, fakes y fixtures, benchmarks y fuzzing, y las flags que controlan qué se ejecuta.
Trece pasos. Las convenciones son estrictas y nadie las discute, lo que es un resumen bastante justo de Go en general.
Escribir pruebas
- Una prueba en GoUn archivo que termina en _test.go, una función que toma *testing.T y t.Errorf.
- Pruebas por tablaEl estilo de la casa en Go: un slice de casos, un subtest cada uno.
- Helpers y limpiezat.Helper corrige la línea reportada; t.Cleanup reemplaza el teardown.
- Probar erroresAserta sobre el centinela o el tipo, nunca sobre el texto del mensaje.
Fakes y fixtures
- Simular una dependenciaDepende de una interfaz y la prueba aporta su propia implementación.
- Probar un handler HTTPhttptest da un grabador y una petición, así que no se abre ningún puerto.
- Archivos goldenComparar contra un archivo grabado, y regenerarlo detrás de un flag.
Medir y generar
- Benchmarksb.Loop en Go 1.24 reemplazó el bucle b.N, y evita que el optimizador haga trampa.
- FuzzingUn objetivo de fuzz recibe entradas al azar hasta hallar una que rompa la propiedad.
- Los ejemplos son pruebasUna función Example con comentario Output se compila, se corre y se verifica.
Ejecutarlas
- Subtests en paralelot.Parallel pausa un subtest hasta que los demás arrancan, y luego corren juntos.
- TestMainUn solo lugar para la preparación del paquete, y el código de salida lo devuelves tú.
Bis
- store_test.goUn archivo de pruebas completo: tablas, subtests, un fake, un benchmark y fuzzing.