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.