以下代码始终导致找不到路由。但路线确实存在。
$client = static::createClient();
$crawler = $client->request(
'GET',
'/app_dev.php/admin/',
array(),
array(),
array("HTTP_HOST" => "dev.example:8080"));
但总是失败。如果我在浏览器中转到http://dev.example:8080/app_dev.php/admin/,那么它可以正常工作。
就像PHPUnit不能看那个主持人?
答案 0 :(得分:3)
$crawler->request()
不应该收到实际的URI,而应该是前端控制器之后的部分。所以在你的情况下,使用:
$client = static::createClient();
$crawler = $client->request(
'GET',
'/admin/',
array(),
array(),
array("HTTP_HOST" => "dev.example:8080"));
这背后的原因是客户端实际上没有请求页面(到主机)。它只是通过创建Request
对象,将其传递给AppKernel
然后解析Response
来模拟请求。这要快得多。