Middle
Czym jest obiekt mock (sztuczny) w testowaniu?
sobes.tech AI
Odpowiedź od AI
Obiekt mock (sztuczny) w testach to specjalny obiekt, który imituje zachowanie rzeczywistego komponentu lub modułu systemu. Używa się go do izolacji testowanego kodu od zależności zewnętrznych, aby sprawdzić logikę bez wpływu rzeczywistych usług lub zasobów.
Na przykład, jeśli masz funkcję, która odwołuje się do bazy danych, w testach zamiast rzeczywistego połączenia można użyć obiektu mock, który zwraca wcześniej zdefiniowane dane. Przyspiesza to testy i czyni je bardziej niezawodnymi.
Przykład w Go z użyciem interfejsów i mocków:
// Interfejs do pracy z bazą
type UserRepository interface {
GetUser(id int) (*User, error)
}
// Implementacja mock
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
return &User{ID: id, Name: "Test User"}, nil
}
// W teście
func TestGetUserName(t *testing.T) {
repo := &MockUserRepo{}
user, err := repo.GetUser(1)
if err != nil {
t.Fatal(err)
}
if user.Name != "Test User" {
t.Errorf("oczekiwano Test User, otrzymano %s", user.Name)
}
}
W ten sposób obiekty mock pomagają tworzyć kontrolowane środowisko do testowania i wykrywać błędy w logice bez zależności od zewnętrznych systemów.