Sobes.tech
Junior — Middle

Mi a fő szerepe és alkalmazása a Mock-objektumoknak a tesztelési folyamatban?

sobes.tech MI

Válasz az MI-től

A mock-objektumokat tesztekben használják a rendszer valódi komponenseinek viselkedésének szimulálására, amelyekkel a tesztelt modul kölcsönhatásba lép. A mock fő szerepe az, hogy elkülönítse a tesztelt kódot a külső függőségektől (például adatbázisok, hálózati szolgáltatások), hogy a tesztek gyorsak, megbízhatóak és reprodukálhatóak legyenek.

A mock-objektumok használatával lehetőség nyílik:

  • a függőségekkel való kölcsönhatások ellenőrzésére (például metódushívások, átadott paraméterek);
  • különböző működési szcenáriók szimulálására (siker, hibák, késleltetések);
  • a tesztkörnyezet beállításának egyszerűsítésére.

Példa Go nyelven, interfészek és mock-ok használatával egy külső szolgáltatást hívó függvény tesztelésére:

package service

type ExternalAPI interface {
    GetData(id string) (string, error)
}

func ProcessData(api ExternalAPI, id string) (string, error) {
    data, err := api.GetData(id)
    if err != nil {
        return "", err
    }
    return "Processed: " + data, nil
}

// A tesztben mock-ot hozunk létre:

type MockAPI struct {}

func (m *MockAPI) GetData(id string) (string, error) {
    if id == "123" {
        return "mocked data", nil
    }
    return "", fmt.Errorf("not found")
}

// Teszt
func TestProcessData(t *testing.T) {
    mock := &MockAPI{}
    result, err := ProcessData(mock, "123")
    if err != nil || result != "Processed: mocked data" {
        t.Errorf("nem várt eredmény: %v, hiba: %v", result, err)
    }
}