API für „die Software zum Verspotten von Antworten Dritter“, die in die API-Tests Ihrer Anwendung einbezogen werden soll.
Um Anfragen automatisch an den API-Mock weiterzuleiten, besteht die Möglichkeit, einen HandlerStack
für Guzzle
zu verwenden. Der HandlerStack
prüft, ob eine Anfrage bereits gespeichert wurde. Wenn nicht, wird die Anfrage an den richtigen Host gesendet und dann die Antwort zwischengespeichert, sodass beim nächsten Mal eine Anfrage an den API-Mock und die zwischengespeicherte Antwort gesendet wird wird zurückgegeben.
<?php//...$apiMockClient = new GuzzleHttpClient([/*...*/]);$apiMock = new ApiMockCoreApiMock($apiMockClient);$proxyStack = new ApiMockProxyProxyStack($apiMock);$myDefaultClient = new GuzzleHttpClient ([/*...*/'handler' => $proxyStack, ]);// Wird gegen example.org$myDefaultClient->get('https://example.org', []);// Wird gegen API Mock gesendet$myDefaultClient->get('https:/ /example.org', []);
ApiMock::getClientRequest()
erhält einen 404/null A) Die betreffende Anfrage wurde noch nie von Ihrer Anwendung aufgerufen, daher wurde nie eine Anfrage mit dem requestKey aufgezeichnet. Stellen Sie sicher, dass ApiMock::addResponse()
in der richtigen Reihenfolge ausgeführt wird. Vielleicht entspricht eine der früheren Antworten nicht den Erwartungen Ihrer Anwendung und führt zum Scheitern?
B) Ihre Anfragen an API Mock verwenden unterschiedliche Sitzungsschlüssel (oder gar keine). Dies kann beispielsweise passieren, wenn Teile Ihrer Anwendung asynchron laufen (z. B. in Warteschlangen). Verwenden Sie die Funktion „$sessionCacheFile“, um den richtigen Sitzungsschlüssel abzurufen. (Geben Sie einen Dateipfad an, in den API Mock den aktuell verwendeten Sitzungsschlüssel kopieren und ihn dann in Ihrer Anwendung abrufen kann.)