让我先说一下,我是新手写测试,所以我的工具和/或测试概念可能会混淆。
我使用 Laravel 5.2 构建了一个 API。我编写了测试,在 ./tests 中扩展 TestCase 来覆盖几乎所有的 API 请求和响应元素。
接下来,我需要使用查询参数进行 GET 请求来完成 API 的一些功能。我发现使用 Laravel 的 $this->call('GET', $url) 方法很难或不可能实现,所以我添加了 Guzzle 来完成这个任务。
太好了...当我一次运行一组测试时,一切都正常。
但是,当我运行整个 API 测试序列时,由于使用 Guzzle 触发的 HTTP 请求数量过多,我会得到一个 TOO MANY CONNECTIONS 错误。为了解决这个问题,我尝试使用 Guzzle's Async Requests feature。
现在的问题是 PHPUnit 完成了所有的测试,但 $promise()->then() 没有执行。
有什么建议吗?
我使用 Laravel 5.2 构建了一个 API。我编写了测试,在 ./tests 中扩展 TestCase 来覆盖几乎所有的 API 请求和响应元素。
接下来,我需要使用查询参数进行 GET 请求来完成 API 的一些功能。我发现使用 Laravel 的 $this->call('GET', $url) 方法很难或不可能实现,所以我添加了 Guzzle 来完成这个任务。
太好了...当我一次运行一组测试时,一切都正常。
但是,当我运行整个 API 测试序列时,由于使用 Guzzle 触发的 HTTP 请求数量过多,我会得到一个 TOO MANY CONNECTIONS 错误。为了解决这个问题,我尝试使用 Guzzle's Async Requests feature。
现在的问题是 PHPUnit 完成了所有的测试,但 $promise()->then() 没有执行。
有什么建议吗?
public function testGet()
{
$promise = $this->client->requestAsync('GET','clients');
$promise->then(
function (ResponseInterface $response) {
$data = json_decode($response->getBody());
// this never get called
print_r($data);
}
);
$promise->wait();
}