Sobes.tech
Junior — Middle

Mocks en las pruebas y por qué son necesarios

sobes.tech AI

Respuesta de la IA

Los mocks en las pruebas son objetos simulados que imitan el comportamiento de dependencias reales del sistema. Son necesarios para aislar el código probado de componentes externos, para que las pruebas sean rápidas, confiables y reproducibles.

Por ejemplo, si una función depende de una base de datos, en lugar de una conexión real, se puede usar un mock que devuelve datos predefinidos. Esto permite verificar la lógica de la función sin riesgo de fallos por problemas con la base de datos.

En Go, los mocks se crean a menudo mediante interfaces y bibliotecas especiales, como gomock o testify/mock.

Ejemplo de un mock simple en Go:

// Interfaz
 type DB interface {
     GetUser(id int) (User, error)
 }

// Mock
 type MockDB struct {}

 func (m *MockDB) GetUser(id int) (User, error) {
     return User{ID: id, Name: "Test User"}, nil
 }

// En la prueba
 func TestGetUserName(t *testing.T) {
     db := &MockDB{}
     user, err := db.GetUser(1)
     if err != nil {
         t.Fatal(err)
     }
     if user.Name != "Test User" {
         t.Errorf("nombre de usuario inesperado")
     }
 }