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.