पायथन परीक्षण के लिए मॉकिंग अनुरोध और प्रतिक्रियाएं
पायथन परीक्षण में, निष्पादन के प्रवाह को नियंत्रित करने के लिए मॉड्यूल और उनकी कार्यक्षमता का मॉक करना आवश्यक हो जाता है और विशिष्ट परिदृश्यों को सत्यापित करें। इनमें, मॉकिंग रिक्वेस्ट मॉड्यूल का उपयोग आमतौर पर उन कार्यों या विधियों का परीक्षण करने के लिए किया जाता है जो HTTP अनुरोधों पर निर्भर होते हैं।
निम्न कोड के साथ एक view.py फ़ाइल पर विचार करें:
def myview(request):
res1 = requests.get('aurl')
res2 = request.get('burl')
res3 = request.get('curl')
इस व्यवहार का नकल करने के लिए, आप पायथन मॉक पैकेज का उपयोग कर सकते हैं। यहां बताया गया है कि आप इसे चरण दर चरण कैसे प्राप्त कर सकते हैं:
चरण 1: मॉक व्यवहार को परिभाषित करें
अनुरोध मॉड्यूल को मॉक करने के लिए, एक फ़ंक्शन को परिभाषित करें जो अनुरोधों को प्रतिस्थापित करेगा। प्राप्त करें (). इस फ़ंक्शन में, आप प्रत्येक URL के लिए वांछित प्रतिक्रिया निर्दिष्ट कर सकते हैं।
def mocked_requests_get(*args, **kwargs):
class MockResponse:
def __init__(self, json_data, status_code):
self.json_data = json_data
self.status_code = status_code
def json(self):
return self.json_data
if args[0] == 'aurl':
return MockResponse({'a': 'a'}, 200)
elif args[0] == 'burl':
return MockResponse({'b': 'b'}, 200)
elif args[0] == 'curl':
return MockResponse({'c': 'c'}, 200)
return MockResponse(None, 404)
चरण 2: अनुरोध मॉड्यूल को पैच करें
अपने परीक्षण मामले में, वास्तविक अनुरोधों को बदलने के लिए मॉक.पैच() डेकोरेटर का उपयोग करें आपके मॉक फ़ंक्शन के साथ मॉड्यूल।
@mock.patch('requests.get', side_effect=mocked_requests_get)
def test_myview(self, mock_get):
# Call the function you want to test
myview(None)
# Assertions for expected responses
...
चरण 3: दावे सत्यापित करें
अपने परीक्षण फ़ंक्शन के भीतर, आप यह सत्यापित करने के लिए दावे का उपयोग कर सकते हैं कि अपेक्षित प्रतिक्रियाएं वापस आ गई हैं।
self.assertEqual(mock_get.call_args_list[0][0][0], 'aurl')
self.assertEqual(mock_get.call_args_list[1][0][0], 'burl')
self.assertEqual(mock_get.call_args_list[2][0][0], 'curl')
इन चरणों का पालन करके, आप HTTP अनुरोधों को प्रभावी ढंग से मॉक कर सकते हैं और अपने पायथन परीक्षण परिदृश्यों में प्रतिक्रियाओं को नियंत्रित कर सकते हैं। यह आपको विशिष्ट कार्यक्षमता को अलग करने और परीक्षण करने की अनुमति देता है जबकि यह सुनिश्चित करता है कि बाहरी निर्भरताएं आपके परिणामों में हस्तक्षेप नहीं करती हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3