Junior
Čo je rozdiel medzi jednotkovými testami a integračnými testami?
sobes.tech AI
Odpoveď od AI
Jednotkové testy a integračné testy sa líšia úrovňou pokrytia a cieľmi:
-
Jednotkové testy kontrolujú jednotlivé, izolované časti kódu — zvyčajne funkcie alebo metódy. Nie sú závislé od externých systémov (databázy, siete atď.) a bežia rýchlo. Cieľom je zabezpečiť, že konkrétny modul funguje správne.
-
Integračné testy kontrolujú spoluprácu viacerých komponentov alebo modulov dohromady. Môžu používať reálne databázy, služby a ďalšie externé závislosti. Cieľom je zabezpečiť, že komponenty správne spolupracujú.
Príklad v Go:
// Jednotkový test funkcie
func TestAdd(t *testing.T) {
result := Add(2, 3)
if result != 5 {
t.Errorf("Očakávané 5, získané %d", result)
}
}
// Integračný test s databázou
func TestUserCreation(t *testing.T) {
db := setupTestDB()
userService := NewUserService(db)
err := userService.CreateUser("testuser")
if err != nil {
t.Fatal(err)
}
// Kontrola, či bol používateľ naozaj vytvorený v databáze
}
Týmto spôsobom sa jednotkové testy zameriavajú na logiku, zatiaľ čo integračné na spoluprácu komponentov.