Junior — Middle
Mock-uri în testare și de ce sunt necesare
sobes.tech AI
Răspuns de la AI
Mock-urile (simulările) în testare sunt obiecte false care imită comportamentul dependențelor reale ale sistemului. Ele sunt necesare pentru izolarea codului testat de componente externe, astfel încât testele să fie rapide, fiabile și reproductibile.
De exemplu, dacă o funcție depinde de o bază de date, în loc de o conexiune reală, se poate folosi un mock care returnează date predefinite. Acest lucru permite verificarea logicii funcției fără riscul de eșecuri cauzate de probleme cu baza de date.
În Go, mock-urile sunt adesea create folosind interfețe și biblioteci speciale, precum gomock sau testify/mock.
Exemplu de mock simplu în Go:
// Interfață
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
}
// În test
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("numele utilizatorului neașteptat")
}
}