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