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 = new GuzzleHttpClient ([/*...*/'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 可以将当前使用的会话密钥转储到其中,然后在应用程序中检索它)。