हम थोड़ी देर के लिए अजगर के लिए मॉक का उपयोग कर रहे हैं ।
अब, हमारे पास एक ऐसी स्थिति है जिसमें हम एक फ़ंक्शन का मखौल बनाना चाहते हैं
def foo(self, my_param):
#do something here, assign something to my_result
return my_result
आम तौर पर, इसका मजाक उड़ाने का तरीका होगा (यह मानते हुए कि किसी वस्तु का हिस्सा होना)
self.foo = MagicMock(return_value="mocked!")
यहां तक कि, अगर मैं फू () को दो बार कहता हूं तो मैं उपयोग कर सकता हूं
self.foo = MagicMock(side_effect=["mocked once", "mocked twice!"])
अब, मैं एक ऐसी स्थिति का सामना कर रहा हूं जिसमें मैं एक निश्चित मान वापस करना चाहता हूं जब इनपुट पैरामीटर का एक विशेष मूल्य होता है। तो अगर हम कहते हैं कि "my_param" "कुछ" के बराबर है तो मैं "my_cool_mock" लौटना चाहता हूं
यह अजगर के लिए मॉकिटो पर उपलब्ध लगता है
when(dummy).foo("something").thenReturn("my_cool_mock")
मैं खोज रहा हूं कि बिना किसी सफलता के साथ मॉक को कैसे हासिल किया जाए?
कोई विचार?
monkeypatch
। मंकीपैच "इस फ़ंक्शन को परीक्षण के लिए प्रतिस्थापित करें" के लिए अधिक है, जबकि मॉक वह है जो आप तब उपयोग करते हैं जब आप यह भी जांचना चाहते हैं mock_calls
या इसके बारे में क्या कहा जाता है और इसी तरह। दोनों के लिए एक जगह है, और मैं अक्सर दिए गए परीक्षण फ़ाइल में अलग-अलग समय पर दोनों का उपयोग करता हूं।