Junior — Middle
Aká je hlavná úloha a použitie Mock objektov v procese testovania?
sobes.tech AI
Odpoveď od AI
Objekty mock sa používané v testovaní na simuláciu správania skutočných komponentov systému, s ktorými interaguje testovaný modul. Hlavná úloha mock je izolovať testovaný kód od externých závislostí (napríklad databáz, sieťových služieb), aby testy boli rýchle, spoľahlivé a reprodukovateľné.
Použitie mock objektov umožňuje:
- overiť interakcie so závislosťami (napríklad volania metód, odovzdané parametre)
- simulovať rôzne scenáre chodu závislostí (úspech, chyby, oneskorenia)
- zjednodušiť nastavenie testovacieho prostredia.
Príklad v Go s použitím rozhraní a mockov na testovanie funkcie, ktorá volá externý servis:
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
}
// V teste vytvoríme mock:
type MockAPI struct {}
func (m *MockAPI) GetData(id string) (string, error) {
if id == "123" {
return "mocked data", nil
}
return "", fmt.Errorf("not found")
}
// Test
func TestProcessData(t *testing.T) {
mock := &MockAPI{}
result, err := ProcessData(mock, "123")
if err != nil || result != "Processed: mocked data" {
t.Errorf("nečakaný výsledok: %v, chyba: %v", result, err)
}
}