Sobes.tech
Junior

Čím se liší jednotkové testy od integračních testů?

sobes.tech AI

Odpověď od AI

Jednotkové testy a integrační testy se liší úrovní pokrytí a cíli:

  • Jednotkové testy kontrolují jednotlivé, izolované části kódu — obvykle funkce nebo metody. Nezávisí na externích systémech (databáze, sítě atd.) a běží rychle. Cílem je ujistit se, že konkrétní modul funguje správně.

  • Integrační testy kontrolují spolupráci několika komponent nebo modulů. Mohou používat reálné databáze, služby a další externí závislosti. Cílem je ujistit se, že komponenty spolu správně spolupracují.

Příklad v Go:

// Jednotkový test funkce
func TestAdd(t *testing.T) {
    result := Add(2, 3)
    if result != 5 {
        t.Errorf("Očekáváno 5, získáno %d", result)
    }
}

// Integrační test s databází
func TestUserCreation(t *testing.T) {
    db := setupTestDB()
    userService := NewUserService(db)
    err := userService.CreateUser("testuser")
    if err != nil {
        t.Fatal(err)
    }
    // Kontrola, že uživatel byl skutečně vytvořen v databázi
}

Tímto způsobem se jednotkové testy zaměřují na logiku, zatímco integrační testy na spolupráci komponent.