API untuk "perangkat lunak untuk meniru tanggapan pihak ketiga" untuk disertakan dalam pengujian API aplikasi Anda.
Untuk meneruskan permintaan secara otomatis ke tiruan API, ada kemungkinan untuk menggunakan HandlerStack
untuk Guzzle
. HandlerStack
memeriksa apakah permintaan telah disimpan dan jika belum, permintaan tersebut akan dikirim ke host yang benar dan kemudian respons akan di-cache, sehingga pada saat permintaan berikutnya akan dikirim ke tiruan API, dan respons di-cache. akan dikembalikan.
<?php//...$apiMockClient = GuzzleHttpClient baru([/*...*/]);$apiMock = ApiMockCoreApiMock baru($apiMockClient);$proxyStack = ApiMockProxyProxyStack baru($apiMock);$myDefaultClient = GuzzleHttpClient baru ([/*...*/'handler' => $proxyStack, ]);// Akan dikirim melalui example.org$myDefaultClient->get('https://example.org', []);// Akan dikirim melalui API Mock$myDefaultClient->get('https:/ /example.org', []);
ApiMock::getClientRequest()
mendapat 404/null A) Permintaan yang dimaksud belum pernah dipanggil oleh aplikasi Anda, oleh karena itu permintaan dengan requestKey tidak pernah dicatat. Pastikan ApiMock::addResponse()
dalam urutan yang benar. Mungkin salah satu respons sebelumnya tidak sesuai dengan harapan aplikasi Anda dan menyebabkannya gagal?
B) Permintaan Anda ke API Mock menggunakan kunci sesi yang berbeda (atau tidak sama sekali). Misalnya, hal ini dapat terjadi jika sebagian aplikasi Anda berjalan secara asinkron (misalnya dalam antrean). Gunakan fitur $sessionCacheFile untuk mengambil kunci sesi yang benar. (berikan jalur file tempat API Mock dapat membuang kunci sesi yang saat ini digunakan dan kemudian mengambilnya di aplikasi Anda).