Desarrollador Go: pregunta de entrevista

¿Cuál es tu estrategia de testing en Go?

Las pruebas Go deben cubrir comportamiento en el límite útil más pequeño: pruebas unitarias table-driven para lógica pura, integración para dependencias reales y detección de carreras para código concurrente.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

Una estrategia de testing en Go apila pruebas baratas y rápidas bajo unas pocas caras. Pruebas unitarias con tablas cubren lógica pura y casos límite; las pruebas que tocan base de datos o red corren contra una dependencia real en un entorno aislado en lugar de un mock de SQL escrito a mano; el detector de carreras corre en cada paquete con goroutines. Las pruebas usan la API pública del paquete cuando es posible para que un refactor no reescriba la suite, y los helpers se marcan con t.Helper para que los fallos señalen la línea correcta.

Ejemplo

Ejecuta go test -race para paquetes que comparten estado entre goroutines y usa t.TempDir o contenedores de prueba para aislar estado de integración. Un paquete repositorio se prueba contra un esquema PostgreSQL desechable creado en TestMain, mientras la capa HTTP encima se prueba con httptest.NewServer y un repositorio falso que implementa la misma interfaz pequeña.

Errores frecuentes

  • Hacer mock del driver de base de datos en lugar de ejecutar la consulta contra un motor real.
  • Compartir fixtures mutables entre pruebas, de modo que el orden empieza a importar.
  • Saltarse -race en local y descubrir carreras de datos solo en logs de producción.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador Go