Sobes.tech
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.