Sobes.tech
Junior — Middle

¿Cómo realizaste las pruebas del código que interactúa con la base de datos?

sobes.tech AI

Respuesta de la IA

Para probar el código que interactúa con la base de datos en Go, se utilizan varios enfoques:

  • Simulación de la base de datos — se crean interfaces para trabajar con la base de datos y se reemplazan las llamadas reales por mocks, para probar la lógica sin una base de datos real.
  • Bases de datos de prueba — se utiliza una base de datos de prueba separada o bases en memoria (por ejemplo, SQLite) para realizar pruebas de integración.
  • Transacciones con rollback — en las pruebas, se abre una transacción, se realizan operaciones y al final se revierten los cambios, para no contaminar el entorno de prueba.

Ejemplo de uso de interfaz y mocks:

// Interfaz para trabajar con la base de datos
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// En las pruebas, creamos un mock
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
    return &User{ID: id, Name: "Test"}, nil
}

Este enfoque permite aislar el código probado de la base de datos real.