Sobes.tech
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")
     }
 }