Sobes.tech
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")
     }
 }