Sobes.tech
Junior

Care este diferența dintre testele unitare și testele de integrare?

sobes.tech AI

Răspuns de la AI

Testele unitare și testele de integrare diferă în nivelul de acoperire și scopuri:

  • Testele unitare verifică părți izolate ale codului — de obicei funcții sau metode. Nu depind de sisteme externe (baze de date, rețele etc.) și se execută rapid. Scopul este de a se asigura că un modul specific funcționează corect.

  • Testele de integrare verifică interacțiunea mai multor componente sau module împreună. Pot folosi baze de date reale, servicii și alte dependențe externe. Scopul este de a se asigura că componentele funcționează corect împreună.

Exemplu în Go:

// Test unitar al unei funcții
func TestAdd(t *testing.T) {
    result := Add(2, 3)
    if result != 5 {
        t.Errorf("Se aștepta 5, s-a obținut %d", result)
    }
}

// Test de integrare cu bază de date
func TestUserCreation(t *testing.T) {
    db := setupTestDB()
    userService := NewUserService(db)
    err := userService.CreateUser("testuser")
    if err != nil {
        t.Fatal(err)
    }
    // Verificăm dacă utilizatorul a fost creat în mod real în baza de date
}

Astfel, testele unitare se concentrează pe logică, iar cele de integrare pe interacțiunea componentelor.