] एक सामान्य चुनौती यह है कि परीक्षणों के दौरान वस्तुओं और कार्यों के व्यवहार का मजाक या संशोधित कैसे किया जाए। यह वह जगह है जहां सबसे अधिक मंकेपैच स्थिरता चमकती है। यह परीक्षण के दौरान गतिशील रूप से आपके कोड के कुछ हिस्सों को बदलने के लिए एक लचीला तरीका प्रदान करता है।
]
]
कार्य या तरीके
] यह स्थायी परिवर्तन किए बिना विशिष्ट परिस्थितियों में मॉकिंग, ओवरराइडिंग निर्भरता, या परीक्षण कोड के लिए विशेष रूप से उपयोगी है।
]
1। एक फ़ंक्शन का मजाक उड़ाना
# my_class.py
क्लास कैलकुलेटर:
def Add (स्व, a, b):
एक बी लौटाएं
# my_app.py def fetch_data(): # Simulate an API call return "Real API Response"
# test_my_class.py
my_class आयात कैलकुलेटर से
DEF TEST_CALCULATER_ADD (MONKEYPATCH):
def mock_add (स्व, ए, बी):
42 रिटर्न
monkeypatch.setattr (कैलकुलेटर, "ADD", MOCK_ADD)
calc = कैलकुलेटर ()
Calc.add (1, 2) == 42
# test_my_app.py from my_app import fetch_data def test_fetch_data(monkeypatch): def mock_fetch_data(): return "Mocked Response" monkeypatch.setattr("my_app.fetch_data", mock_fetch_data) assert fetch_data() == "Mocked Response"
विभिन्न व्यवहारों का अनुकरण करने के लिए खुला नकली:
# config.py import os def get_database_url(): return os.getenv("DATABASE_URL", "default_url")
बंदरों के साथ सर्वोत्तम अभ्यास
# my_app.py def fetch_data(): # Simulate an API call return "Real API Response"]
"
"
# my_class.py class Calculator: def add(self, a, b): return a bनिष्कर्ष
] चाहे आप किसी फ़ंक्शन का मजाक उड़ा रहे हों, पर्यावरण चर को ओवरराइड कर रहे हों, या एज के मामलों का परीक्षण कर रहे हों, मंकीपैच आपके परीक्षण वर्कफ़्लो को काफी सरल कर सकते हैं।
] अधिक जानने के लिए आधिकारिक pytest प्रलेखन का अन्वेषण करें और Pytest की पूरी क्षमता को अनलॉक करें!
# test_my_class.py from my_class import Calculator def test_calculator_add(monkeypatch): def mock_add(self, a, b): return 42 monkeypatch.setattr(Calculator, "add", mock_add) calc = Calculator() assert calc.add(1, 2) == 42
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3