Sobes.tech
Middle+

¿Qué es un mock (simulación)?

sobes.tech AI

Respuesta de la IA

Mock (moke) es un objeto de marcador de posición que imita el comportamiento de un objeto real en las pruebas. Los mocks se utilizan para aislar el código probado de dependencias externas, para verificar la lógica sin realizar operaciones complejas o externas.

En Go, los mocks a menudo se crean manualmente o con generadores (por ejemplo, mockgen). Implementan interfaces que el código probado utiliza y permiten definir llamadas esperadas y valores de retorno.

Ejemplo de un mock simple de una interfaz:

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

// Mock
type MockUserRepo struct {
    Users map[int]*User
}

func (m *MockUserRepo) GetUser(id int) (*User, error) {
    if user, ok := m.Users[id]; ok {
        return user, nil
    }
    return nil, errors.New("usuario no encontrado")
}

Este mock puede usarse en pruebas para controlar el comportamiento del repositorio sin una base de datos real.