api mock api
8.1
用於「模擬第三方回應的軟體」的 API,包含在應用程式的 API 測試中。
若要自動將請求轉送至 API 模擬,可以使用Guzzle
的HandlerStack
。 HandlerStack
檢查請求是否已儲存,如果沒有,則將請求傳送到正確的主機,然後快取回應,以便下次請求傳送到 API 模擬時,快取的回應將會被退回。
<?php//...$apiMockClient = new GuzzleHttpClient([/*...*/]);$apiMock = new ApiMockCoreApiMock($apiMockClient);$proxyStack = new ApiMockProxyProxyStack($apiMock);$myDefaultClient. ([/*...*/'handler' => $proxyStack, ]);// 將針對 example.org 發送$myDefaultClient->get('https://example.org', []);// 將針對 API Mock 發送$myDefaultClient->get('https:// / example.org', []);
ApiMock::getClientRequest()
得到 404/null A)您的應用程式從未呼叫過相關請求,因此從未記錄過帶有 requestKey 的請求。確保ApiMock::addResponse()
按正確的順序。也許早期的回應之一與您的應用程式的期望不符並導致它失敗?
B)您對 API Mock 的請求使用不同的會話金鑰(或完全不使用)。例如,如果應用程式的某些部分非同步運行(例如在佇列中),則可能會發生這種情況。使用 $sessionCacheFile 功能檢索正確的會話金鑰。 (提供一個檔案路徑,API Mock 可以將目前使用的會話金鑰轉儲到其中,然後在應用程式中檢索它)。