Sobes.tech
Junior — Middle

Mocky v testování a proč jsou potřeba

sobes.tech AI

Odpověď od AI

Mocky (falešné objekty) v testování jsou objekty, které napodobují chování skutečných závislostí systému. Jsou nezbytné k izolaci testovaného kódu od externích komponent, aby testy byly rychlé, spolehlivé a reprodukovatelné.

Například, pokud funkce závisí na databázi, místo skutečného připojení lze použít mock, který vrací předem stanovená data. To umožňuje ověřit logiku funkce bez rizika selhání kvůli problémům s databází.

V Go se mocky často vytvářejí pomocí rozhraní a speciálních knihoven, například gomock nebo testify/mock.

Příklad jednoduchého mocku v Go:

// Rozhraní
 type DB interface {
     GetUser(id int) (User, error)
 }

// Mock
 type MockDB struct {}

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

// V testu
 func TestGetUserName(t *testing.T) {
     db := &MockDB{}
     user, err := db.GetUser(1)
     if err != nil {
         t.Fatal(err)
     }
     if user.Name != "Test User" {
         t.Errorf("nečekané jméno uživatele")
     }
 }