Mock Ne Demek?
Yayın: · Son güncelleme:
Mock Ne Demek? Kısaca
Mock, yazılım testlerinde gerçek bir bağımlılığın, örneğin veritabanı, ödeme servisi ya da e-posta sağlayıcısının yerine geçen ve davranışı önceden belirlenen sahte nesnedir. Testi hızlı, bağımsız ve tekrarlanabilir kılar.

Mock ne demek?
Mock, İngilizcede "taklit, sahte" anlamına gelir. Testte, kodunuzun konuştuğu gerçek bir sistemin yerine konan bir dublördür. Gerçek sistem gibi davranır, ama aslında yalnız sizin önceden söylediğiniz cevabı verir.
Neden gerekir? Çünkü birim testi tek bir parçayı yalıtarak denemek ister. Her testte gerçek bir ödeme servisine bağlanmak yavaş, pahalı ve güvenilmez olur.
Nasıl kullanılır?
Bir sipariş fonksiyonunun ödeme alındıktan sonra müşteriye e-posta gönderdiğini düşünün. Testte gerçek e-posta göndermek istemezsiniz. Bunun yerine e-posta servisinin bir mock'unu oluşturursunuz.
Test iki şeyi kontrol eder. Birincisi, sipariş tamamlandığında mock e-posta servisinin çağrılıp çağrılmadığı. İkincisi, doğru adrese ve doğru konuyla çağrılıp çağrılmadığı.
Ödeme servisinin hata verdiği durumu da kolayca taklit edebilirsiniz: mock'a "bu sefer reddet" dersiniz ve kodunuzun hatayı doğru yönetip yönetmediğine bakarsınız. Gerçek bir servisle bu senaryoyu üretmek çok daha zordur.
Mock, stub ve dikkat edilecekler
Benzer kavramlar sık karıştırılır. Stub yalnız sabit bir cevap döndürür. Mock ise buna ek olarak nasıl çağrıldığını da kaydeder ve doğrulamanıza izin verir. Günlük konuşmada ikisi de çoğu zaman "mock" diye anılır.
Aşırıya kaçmayın. Her şeyi mock'larsanız test, gerçek sistemin değil kendi varsayımlarınızın doğruluğunu ölçer. Bu yüzden mock'lu birim testi yanında gerçek bileşenlerle çalışan entegrasyon testleri de bulundurun.
Sıkça Sorulan Sorular
Mock data ne demek?
Mock data, test ya da tasarım aşamasında gerçek veri yerine kullanılan sahte veridir. Örneğin gerçek müşteri bilgileri yerine uydurma isimler ve adreslerle doldurulmuş bir liste mock data'dır.
Mock hangi araçlarla yapılır?
Çoğu test aracı kendi mock desteğini sunar. Python'da unittest.mock, JavaScript'te Jest ve Java'da Mockito yaygın örneklerdir.