Sobes.tech
Middle

Was ist ein Mock-Objekt (Scheinobjekt) im Testen?

sobes.tech KI

Antwort von AI

Ein Mock-Objekt im Testen ist ein spezielles Objekt, das das Verhalten eines echten Systemkomponenten oder Moduls imitiert. Es wird verwendet, um den zu testenden Code von externen Abhängigkeiten zu isolieren, um die Logik zu überprüfen, ohne von echten Diensten oder Ressourcen beeinflusst zu werden.

Zum Beispiel, wenn Sie eine Funktion haben, die auf eine Datenbank zugreift, können Sie in Tests anstelle einer echten Verbindung ein Mock-Objekt verwenden, das vordefinierte Daten zurückgibt. Das beschleunigt die Tests und macht sie zuverlässiger.

Beispiel in Go mit Schnittstellen und Mocks:

// Schnittstelle für die Arbeit mit der Datenbank
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Mock-Implementierung
type MockUserRepo struct {}

func (m *MockUserRepo) GetUser(id int) (*User, error) {
    return &User{ID: id, Name: "Test User"}, nil
}

// Im Test
func TestGetUserName(t *testing.T) {
    repo := &MockUserRepo{}
    user, err := repo.GetUser(1)
    if err != nil {
        t.Fatal(err)
    }
    if user.Name != "Test User" {
        t.Errorf("expected Test User, got %s", user.Name)
    }
}

Auf diese Weise helfen Mock-Objekte, eine kontrollierte Testumgebung zu schaffen und Fehler in der Logik zu erkennen, ohne von externen Systemen abhängig zu sein.