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")
}
}