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)
}
}