Sobes.tech
Junior — Middle

Testlerde mocklar ve neden ihtiyaç duyulurlar

sobes.tech yapay zeka

AI'dan gelen yanıt

Testlerde mock (taklit) nesneleri, sistemin gerçek bağımlılıklarının davranışını taklit eden sahte nesnelerdir. Bunlar, test edilen kodu dış bileşenlerden izole etmek için gereklidir, böylece testler hızlı, güvenilir ve tekrar üretilebilir olur.

Örneğin, bir fonksiyon bir veritabanına bağlıysa, gerçek bağlantı yerine önceden belirlenmiş veriler döndüren bir mock kullanılabilir. Bu, veritabanı sorunlarından kaynaklanan arızalar olmadan fonksiyonun mantığını kontrol etmeyi sağlar.

Go dilinde, mocklar genellikle arayüzler ve özel kütüphaneler (örneğin, gomock veya testify/mock) kullanılarak oluşturulur.

Basit bir mock örneği Go dilinde:

// Arayüz
 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
 }

// Testte
 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("beklenmeyen kullanıcı adı")
     }
 }