Middle
¿Qué es un objeto mock (simulación) en las pruebas?
sobes.tech AI
Respuesta de la IA
Un objeto simulado (mock) en las pruebas es un objeto especial que imita el comportamiento de un componente o módulo real del sistema. Se utiliza para aislar el código que se está probando de dependencias externas, para verificar la lógica sin la influencia de servicios o recursos reales.
Por ejemplo, si tienes una función que accede a una base de datos, en las pruebas en lugar de una conexión real, puedes usar un objeto mock que devuelva datos predefinidos. Esto acelera las pruebas y las hace más confiables.
Ejemplo en Go usando interfaces y mocks:
// Interfaz para trabajar con la base de datos
type UserRepository interface {
GetUser(id int) (*User, error)
}
// Implementación mock
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
return &User{ID: id, Name: "Test User"}, nil
}
// En la prueba
func TestGetUserName(t *testing.T) {
repo := &MockUserRepo{}
user, err := repo.GetUser(1)
if err != nil {
t.Fatal(err)
}
if user.Name != "Test User" {
t.Errorf("expected Test User, got %s", user.Name)
}
}
De esta manera, los objetos mock ayudan a crear un entorno controlado para las pruebas y a detectar errores en la lógica sin depender de sistemas externos.