Junior — Middle
Ako implementujete náhradné objekty pre jednotkové testovanie?
sobes.tech AI
Odpoveď od AI
V Go sa jednotkovými testami sa náhradné objekty (mocks, stubs) zvyčajne implementujú pomocou rozhraní.
- Definujte rozhranie, ktoré opisuje požadované správanie.
- Vytvorte štruktúru, ktorá implementuje toto rozhranie, s potrebnou logikou pre test.
Príklad:
package service
type Database interface {
GetUser(id int) (User, error)
}
type User struct {
ID int
Name string
}
// Implementácia náhradného objektu pre test
type MockDB struct {}
func (m *MockDB) GetUser(id int) (User, error) {
return User{ID: id, Name: "Test User"}, nil
}
// V teste môžete použiť MockDB namiesto reálnej databázy
Tiež je možné použiť externé knižnice na mocky, ako napríklad gomock alebo testify/mock.