Sobes.tech
Middle

Mi az a mock-objektum (hamis objektum) a tesztelésben?

sobes.tech MI

Válasz az MI-től

A mock-objektum (hamis objektum) a tesztelés során egy speciális objektum, amely utánozza a rendszer valódi komponensének vagy moduljának viselkedését. Ezt arra használják, hogy elszigeteljék a tesztelt kódot a külső függőségektől, így a logikát anélkül lehet ellenőrizni, hogy befolyásolnák valódi szolgáltatások vagy erőforrások.

Például, ha van egy olyan függvényed, amely adatbázishoz fér hozzá, a tesztekben a valódi kapcsolat helyett használhatsz egy mock-objektumot, amely előre meghatározott adatokat ad vissza. Ez felgyorsítja a teszteket és megbízhatóbbá teszi azokat.

Példa Go nyelven interfészekkel és mock-okkal:

// Interfész az adatbázissal való munkához
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Mock implementáció
type MockUserRepo struct {}

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

// A tesztben
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("várt: Test User, kapott: %s", user.Name)
    }
}

Így a mock-objektumok segítenek kontrollált környezetet teremteni a tesztekhez és hibák felfedezésében a logikában anélkül, hogy külső rendszerekhez kellene kapcsolódni.