İçeriğe geç
parazade

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 nedir?
İçindekiler
  1. Mock ne demek?
  2. Nasıl kullanılır?
  3. Mock, stub ve dikkat edilecekler

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.

İlgili terimler

Birim Testi(Unit Testing)Birim testi (unit test), bir yazılımın en küçük test edilebilir parçasının, genelde tek bir fonksiyon ya da metodun, diğer bileşenlerden bağımsız olarak doğru çalışıp çalışmadığını kontrol eden otomatik testtir.Entegrasyon Testi(Integration Testing)Entegrasyon testi, bir yazılımın ayrı ayrı geliştirilmiş bileşenlerinin, örneğin uygulama kodu, veritabanı ve dış servislerin, bir araya geldiğinde doğru şekilde iletişim kurup çalıştığını doğrulayan test türüdür.Test Otomasyonu(Test Automation)Test otomasyonu, yazılım testlerinin bir insan tarafından elle yapılması yerine önceden yazılmış betikler ve araçlar aracılığıyla otomatik olarak çalıştırılması ve sonuçların raporlanmasıdır.Bağımlılık(Dependency)Yazılımda bağımlılık (dependency), bir projenin çalışmak için ihtiyaç duyduğu dış kütüphane, paket ya da modüldür. Bağımlılık eksik ya da uyumsuz sürümde olursa proje derlenmez veya hatalı çalışır.Sabit(Constant)Sabit (constant), programlamada bir kez değer atandıktan sonra program boyunca değiştirilmemesi gereken isimli veridir. Pi sayısı, bir vergi oranı ya da en fazla deneme hakkı gibi değerler sabit olarak tanımlanır.Entegrasyon(Integration)Entegrasyon, ayrı çalışan yazılımların, sistemlerin ya da verilerin birbirine bağlanarak tek bir bütün gibi çalışmasının sağlanmasıdır. E-ticarette mağaza, kargo ve muhasebe programlarının otomatik veri paylaşması buna örnektir.