"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكن الاستهزاء بوحدة طلبات بايثون من أجل تفاعلات واقعية مع واجهة برمجة التطبيقات؟

كيف يمكن الاستهزاء بوحدة طلبات بايثون من أجل تفاعلات واقعية مع واجهة برمجة التطبيقات؟

تم النشر بتاريخ 2024-11-19
تصفح:477

How to Mock Python\'s Requests Module for Realistic API Interactions?

وحدة طلبات بايثون الساخرة لتفاعلات واجهة برمجة التطبيقات المحاكاة

في سعينا لاختبار كود بايثون الذي يتفاعل مع واجهات برمجة التطبيقات بشكل شامل، مما يستهزئ بشكل فعال بوحدة الطلبات أمر بالغ الأهمية. فيما يلي طريقة خطوة بخطوة للاستهزاء باستدعاءات request.get()‎ باستجابات مخصصة:

الخطوة 1: الاستهزاء بوحدة الطلبات

استخدام حزمة بايثون الوهمية، نحدد وظيفتنا المخصصة (mocked_requests_get) لتجاوز request.get(). تقوم هذه الوظيفة بإرجاع استجابات وهمية بناءً على عنوان URL المقدم. في مثالنا، ستتلقى عناوين 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)

يغلف مصمم الديكور هذا طريقة الاختبار الخاصة بنا، مما يضمن الاستهزاء بالطلبات.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'

باتباع هذه الخطوات، يمكنك محاكاة وحدة الطلبات بشكل فعال في اختبارات بايثون، مما يسمح لك بمحاكاة استجابات واجهة برمجة التطبيقات المختلفة واختبار سلوك التعليمات البرمجية الخاصة بك بدقة في سيناريوهات مختلفة.

بيان الافراج أعيد طبع هذه المقالة على: 1729424602 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3