واجهة برمجة التطبيقات (API) الخاصة بـ "برنامج الاستهزاء باستجابات الجهات الخارجية" لتضمينها في اختبارات واجهة برمجة التطبيقات (API) لتطبيقك.
لإعادة توجيه الطلبات تلقائيًا إلى واجهة برمجة التطبيقات (API) الوهمية، هناك إمكانية استخدام HandlerStack
لـ Guzzle
. يتحقق HandlerStack
مما إذا كان الطلب قد تم حفظه بالفعل، وإذا لم يكن الأمر كذلك، فسيتم إرسال الطلب إلى المضيف الصحيح ومن ثم سيتم تخزين الاستجابة مؤقتًا، بحيث يتم إرسال الطلب إلى واجهة برمجة التطبيقات الوهمية في المرة التالية، والاستجابة المخزنة مؤقتًا سيتم إرجاعها.
<?php//...$apiMockClient = new GuzzleHttpClient([/*...*/]);$apiMock = new ApiMockCoreApiMock($apiMockClient);$proxyStack = new ApiMockProxyProxyStack($apiMock);$myDefaultClient = new GuzzleHttpClient ([/*...*/'handler' => $proxyStack, ]);// سيتم إرساله مقابل example.org$myDefaultClient->get('https://example.org', []);// سيتم إرساله مقابل API Mock$myDefaultClient->get('https:/ /example.org', []);
ApiMock::getClientRequest()
يحصل على 404/null أ) لم يتم استدعاء الطلب المعني من قبل التطبيق الخاص بك، وبالتالي لم يتم تسجيل طلب باستخدام requestKey مطلقًا. تأكد من ApiMock::addResponse()
بالترتيب الصحيح. ربما لا تتطابق إحدى الاستجابات السابقة مع توقعات تطبيقك وتتسبب في فشله؟
ب) تستخدم طلباتك إلى API Mock مفاتيح جلسة مختلفة (أو لا تستخدم أي شيء على الإطلاق). على سبيل المثال، يمكن أن يحدث هذا إذا كانت أجزاء من تطبيقك تعمل بشكل غير متزامن (على سبيل المثال، في قوائم الانتظار). استخدم ميزة $sessionCacheFile لاسترداد مفتاح الجلسة الصحيح. (قم بتوفير مسار ملف حيث يمكن لـ API Mock تفريغ مفتاح الجلسة المستخدم حاليًا ثم استرداده في التطبيق الخاص بك).