Sobes.tech
Middle

Čo je to mock-objekt (falošný objekt) v testovaní?

sobes.tech AI

Odpoveď od AI

Mock objekt (falošný objekt) v testovaní je špeciálny objekt, ktorý napodobňuje správanie skutočného komponentu alebo modulu systému. Používa sa na izoláciu testovaného kódu od externých závislostí, aby bolo možné overiť logiku bez vplyvu skutočných služieb alebo zdrojov.

Napríklad, ak máte funkciu, ktorá pristupuje k databáze, v testoch namiesto skutočného pripojenia môžete použiť mock objekt, ktorý vracia vopred stanovené údaje. To zrýchľuje testy a robí ich spoľahlivejšími.

Príklad v Go s rozhraniami a mockmi:

// Rozhranie pre prácu s databázou
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Mock implementácia
type MockUserRepo struct {}

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

// V teste
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("očakávané Test User, získané %s", user.Name)
    }
}

Týmto spôsobom mock objekty pomáhajú vytvárať kontrolované prostredie pre testovanie a odhaľovať chyby v logike bez závislosti od externých systémov.