Junior
Kuo skiriasi vienetinių testų ir integracinių testų?
sobes.tech AI
Atsakymas iš AI
Vienetiniai ir integraciniai testai skiriasi pagal apimtį ir tikslus:
-
Vienetiniai testai tikrina atskiras, izoliuotas kodo dalis — dažniausiai funkcijas ar metodus. Jie nepriklauso nuo išorinių sistemų (duomenų bazės, tinklai ir kt.) ir vykdomi greitai. Tikslas — įsitikinti, kad konkretus modulis veikia teisingai.
-
Integraciniai testai tikrina kelių komponentų ar modulių sąveiką kartu. Jie gali naudoti realias duomenų bazes, paslaugas ir kitas išorines priklausomybes. Tikslas — įsitikinti, kad komponentai veikia tinkamai kartu.
Pavyzdys Go kalba:
// Vieneto funkcijos testas
func TestAdd(t *testing.T) {
result := Add(2, 3)
if result != 5 {
t.Errorf("Laukiama 5, gauta %d", result)
}
}
// Duomenų bazės integracijos testas
func TestUserCreation(t *testing.T) {
db := setupTestDB()
userService := NewUserService(db)
err := userService.CreateUser("testuser")
if err != nil {
t.Fatal(err)
}
// Patikrinimas, ar naudotojas tikrai sukurtas duomenų bazėje
}
Taip, vienetiniai testai sutelkti į logiką, o integraciniai — į komponentų sąveiką.