Sobes.tech
Junior

Qual è la differenza tra test unitari e test di integrazione?

sobes.tech AI

Risposta dell'AI

I test unitari e i test di integrazione differiscono per livello di copertura e obiettivi:

  • Test unitari verificano parti isolate del codice — solitamente funzioni o metodi. Non dipendono da sistemi esterni (database, reti, ecc.) e vengono eseguiti rapidamente. L’obiettivo è assicurarsi che un modulo specifico funzioni correttamente.

  • Test di integrazione verificano l’interazione di più componenti o moduli insieme. Possono usare database reali, servizi e altre dipendenze esterne. L’obiettivo è assicurarsi che i componenti funzionino correttamente insieme.

Esempio in Go:

// Test unitario di una funzione
func TestAdd(t *testing.T) {
    result := Add(2, 3)
    if result != 5 {
        t.Errorf("Atteso 5, ottenuto %d", result)
    }
}

// Test di integrazione con database
func TestUserCreation(t *testing.T) {
    db := setupTestDB()
    userService := NewUserService(db)
    err := userService.CreateUser("testuser")
    if err != nil {
        t.Fatal(err)
    }
    // Verifica che l’utente sia stato effettivamente creato nel DB
}

In questo modo, i test unitari si concentrano sulla logica, mentre quelli di integrazione sull’interazione dei componenti.