Avatar ·

Cómo configurar correctamente el entorno de pruebas (setup) en Go con el paquete testing?

¡Hola a todos! Empecé a estudiar Go y estoy intentando escribir unit tests para mi proyecto. Tengo una función que trabaja con una base de datos y ejecuta varias consultas. Para las pruebas, necesito preparar los datos antes de cada test: crear tablas, insertar registros de prueba, y después del test, limpiar todo. Conozco las funciones TestMain y t.Run, pero no entiendo cómo usarlas correctamente para setup/teardown. En otros lenguajes (Java, Python) estoy acostumbrado a anotaciones @Before/@After o fixtures de pytest. En Go no existe eso, y siento que estoy copiando el mismo código en cada test. Aquí hay un ejemplo de mi enfoque actual (que no me gusta): ```go func TestGetUser(t *testing.T) { db := setupDB() // creo la BD, tablas, inserto datos defer teardownDB(db) // elimino tablas user, err := GetUser(db, 1) if err != nil { t.Fatal(err) } if user.Name != "Alice" { t.Errorf("expected Alice, got %s", user.Name) } } func TestCreate