CodeBlanks Logo Icon CodeBlanks

Özet - Mocking

Mock, patch ve side_effect'i birleştirerek bir servis testi yazarsın.

Özet - Mocking

Bu grupta unittest.mock araçlarını gördün. Mock sahte nesne üretir; patch gerçek nesneyi test sırasında değiştirir; MagicMock sihirli metotları destekler; side_effect sıralı ya da istisnalı davranış verir; assert_called_with çağrı denetimi sağlar.

Son görevde Mock, side_effect ve assert_called_with'i bir arada kullanacaksın: sıralı yanıt dönen bir sahte servis metodu yazıp çağrıları denetleyeceksin.

Uygulama Mock + side_effect + assert birleşimi

unittest.mock modülünden Mock içe aktar. m = Mock() ile sahte oluştur; m.side_effect = [10, 20] ayarla. m() ve m() çağrılarını print() ile yazdır. m.assert_called() denetimi ekle; print("ok") yaz.

Başlangıç kodu

main.py
# unittest.mock içinden Mock içe aktar
# m adında Mock oluştur; side_effect [10, 20] olsun
# m() çağrısının sonucunu iki kez yazdır
# assert_called denetimi ve "ok" yazdır

Örnek çözüm

main.py
from unittest.mock import Mock

m = Mock()
m.side_effect = [10, 20]
print(m())
print(m())
m.assert_called()
print("ok")

Beklenen çıktı

10
20
ok

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Ardışık farklı değerler döndüren Mock için ne kullanılır?

  • side_effect Doğru cevap
  • MagicMock
  • return_value
  • patch

Açıklama: side_effect liste verirse sırayla, fonksiyon verirse çağırır.

2 Özet: çağrı denetimi

Soru
m = Mock()
m(7)
m.____(7)
Cevap
m = Mock()
m(7)
m.assert_called_with(7)

Açıklama: m.assert_called_with(7) çağrı argümanını denetler.

3 Grup araçlarını eşleştir

Kavram Anlamı
Mock Sahte nesne
patch Gerçeği değiştirir
MagicMock Sihirli metotlar
side_effect Sıralı/istisna

İleri seviye bölümündeki tüm dersler