Sobes.tech
Middle

Testlerde mock nesnesi (taklit) nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Testlerde kullanılan mock nesne (taklit nesne), sistemin gerçek bir bileşen veya modülünün davranışını taklit eden özel bir nesnedir. Dış bağımlılıklardan izole etmek ve gerçek servisler veya kaynaklar etkisi olmadan iş mantığını test etmek için kullanılır.

Örneğin, veritabanına erişen bir fonksiyonunuz varsa, testlerde gerçek bağlantı yerine önceden tanımlanmış veriler döndüren bir mock nesne kullanabilirsiniz. Bu, testleri hızlandırır ve daha güvenilir hale getirir.

Go dilinde arayüzler ve mock kullanımıyla örnek:

// Veritabanı ile çalışma arayüzü
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Mock uygulaması
type MockUserRepo struct {}

func (m *MockUserRepo) GetUser(id int) (*User, error) {
    return &User{ID: id, Name: "Test User"}, nil
}

// Testte
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("beklenen Test User, alınan %s", user.Name)
    }
}

Bu şekilde, mock nesneler testler için kontrollü bir ortam oluşturmaya ve mantık hatalarını dış sistemlere bağımlı olmadan tespit etmeye yardımcı olur.