Sobes.tech
Junior

Worin besteht der Unterschied zwischen Unit-Tests und Integrationstests?

sobes.tech KI

Antwort von AI

Unit-Tests und Integration-Tests unterscheiden sich hinsichtlich Abdeckungsgrad und Zielsetzung:

  • Unit-Tests prüfen einzelne, isolierte Codeabschnitte — in der Regel Funktionen oder Methoden. Sie sind unabhängig von externen Systemen (Datenbanken, Netzwerke usw.) und laufen schnell. Ziel ist es, sicherzustellen, dass ein bestimmtes Modul korrekt funktioniert.

  • Integration-Tests prüfen die Zusammenarbeit mehrerer Komponenten oder Module. Sie können echte Datenbanken, Dienste und andere externe Abhängigkeiten verwenden. Ziel ist es, sicherzustellen, dass die Komponenten zusammen korrekt arbeiten.

Beispiel in Go:

// Unit-Test einer Funktion
func TestAdd(t *testing.T) {
    result := Add(2, 3)
    if result != 5 {
        t.Errorf("Erwartet 5, erhalten %d", result)
    }
}

// Integration-Test mit Datenbank
func TestUserCreation(t *testing.T) {
    db := setupTestDB()
    userService := NewUserService(db)
    err := userService.CreateUser("testuser")
    if err != nil {
        t.Fatal(err)
    }
    // Überprüfen, ob der Benutzer tatsächlich in der DB erstellt wurde
}

Auf diese Weise konzentrieren sich Unit-Tests auf die Logik, während Integration-Tests die Zusammenarbeit der Komponenten prüfen.