मॉकिंग पायथन सिम्युलेटेड एपीआई इंटरैक्शन के लिए मॉड्यूल का अनुरोध करता है
पाइथॉन कोड का व्यापक परीक्षण करने की हमारी खोज में जो एपीआई के साथ इंटरैक्ट करता है, प्रभावी ढंग से अनुरोध मॉड्यूल का मजाक उड़ाता है महत्वपूर्ण है. यहां कस्टम प्रतिक्रियाओं के साथ मॉकिंग रिक्वेस्ट.गेट() कॉल के लिए चरण-दर-चरण दृष्टिकोण दिया गया है:
चरण 1: रिक्वेस्ट मॉड्यूल को मॉक करना
पायथन के मॉक पैकेज का उपयोग करना, हम request.get() को ओवरराइड करने के लिए अपने कस्टम फ़ंक्शन (mocked_requests_get) को परिभाषित करते हैं। यह फ़ंक्शन प्रदान किए गए URL के आधार पर नकली प्रतिक्रियाएँ लौटाता है। हमारे उदाहरण में, विभिन्न यूआरएल को विशिष्ट प्रतिक्रियाएँ प्राप्त होंगी:
def mocked_requests_get(*args, **kwargs): if args[0] == 'aurl': return 'a response' elif args[0] == 'burl': return 'b response' elif args[0] == 'curl': return 'c response'
चरण 2: टेस्ट क्लास में मॉकिंग
हमारे टेस्ट क्लास में, हम Unittest.mock.patch का उपयोग करके मॉक को अनुरोध मॉड्यूल पर लागू करते हैं ():
@mock.patch('requests.get', side_effect=mocked_requests_get)
यह डेकोरेटर हमारी परीक्षण पद्धति को शामिल करता है, यह सुनिश्चित करते हुए कि request.get को हमारे कस्टम फ़ंक्शन के साथ मॉक किया जाता है।
चरण 3: दृश्य को कॉल करना और प्रतिक्रियाओं को सत्यापित करना
हम हमेशा की तरह व्यू फ़ंक्शन शुरू करते हैं और अपेक्षित प्रतिक्रियाओं को सत्यापित करते हैं। हमारा मॉक फ़ंक्शन गारंटी देता है कि प्रतिक्रियाएँ हमारे द्वारा पहले परिभाषित कस्टम प्रतिक्रियाओं से मेल खाती हैं:
res1 = requests.get('aurl') assert res1 == 'a response' res2 = request.get('burl') assert res2 == 'b response' res3 = request.get('curl') assert res3 == 'c response'
इन चरणों का पालन करके, आप अपने पायथन परीक्षणों में अनुरोध मॉड्यूल को प्रभावी ढंग से मॉक कर सकते हैं, जिससे आप विभिन्न एपीआई प्रतिक्रियाओं का अनुकरण कर सकते हैं और विभिन्न परिदृश्यों में अपने कोड के व्यवहार का पूरी तरह से परीक्षण कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3