Junior — Middle
Mocky v testovaní a prečo sú potrebné
sobes.tech AI
Odpoveď od AI
Mocky (falošné objekty) v testovaní sú falošné objekty, ktoré napodobňujú správanie skutočných závislostí systému. Sú nevyhnutné na izoláciu testovaného kódu od externých komponentov, aby testy boli rýchle, spoľahlivé a reprodukovateľné.
Napríklad, ak funkcia závisí od databázy, namiesto skutočného pripojenia možno použiť mock, ktorý vracia vopred stanovené údaje. To umožňuje overiť logiku funkcie bez rizika zlyhania spôsobeného problémami s databázou.
V Go sa mooky často vytvárajú pomocou rozhraní a špeciálnych knižníc, ako je gomock alebo testify/mock.
Príklad jednoduchého moku v Go:
// Rozhranie
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 teste
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("neočakávané meno používateľa")
}
}