Özet - Mocking
- Python kursu
- İleri seviye
- Ders 24/83
- 5 dk
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
# 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
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
m = Mock()
m(7)
m.____(7)
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 |