我正在使用Symfony 3和PHP 5.6,我已经使用PHPUnit设置了一个单元测试,它向控制器发出请求:
$this->client->request('GET', '/api');
URL /api
处的控制器同时向本地Web服务器发出几个Curl请求。有类似的东西:
do_http_requests([
$this->get('router')->generate(
'route', $params, UrlGeneratorInterface::ABSOLUTE
),
...
]);
此操作失败,因为生成的网址指向localhost
(http://localhost/...
)而不是web
(http://web/...
),这是我为本地网络服务器设置的主机名。我收到错误Connection refused
,因为没有人在主持人localhost
上收听。服务器在主机web
上运行。
我还设置了一个环境变量:
SYMFONY__ROUTER__REQUEST_CONTEXT__HOST=web
我希望router
服务能够获取该环境变量并相应地生成URL,如this guide中所述。但事实并非如此。
我误解或错过了什么?
感谢您提供的任何帮助。谢谢!
答案 0 :(得分:1)
我应该在我的测试中使用它:
$this->client->request('GET', '/api', [], [], ['HTTP_Host' => 'web']