Sobes.tech
Middle

Co je to mock-objekt (falešný objekt) v testování?

sobes.tech AI

Odpověď od AI

Mock objekt (falešný objekt) v testování je speciální objekt, který napodobuje chování skutečného komponentu nebo modulu systému. Používá se k izolaci testovaného kódu od externích závislostí, aby bylo možné ověřit logiku bez vlivu skutečných služeb nebo zdrojů.

Například pokud máte funkci, která přistupuje k databázi, v testech místo skutečného připojení můžete použít mock objekt, který vrací předem stanovená data. To urychluje testy a činí je spolehlivějšími.

Příklad v Go s rozhraním a mocky:

// Rozhraní pro práci s databází
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Mock implementace
type MockUserRepo struct {}

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

// V testu
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čekáváno Test User, získáno %s", user.Name)
    }
}

Tímto způsobem mock objekty pomáhají vytvářet kontrolované prostředí pro testování a odhalovat chyby v logice bez závislosti na externích systémech.