无法访问控制器响应的正确内容

时间:2016-10-21 12:39:50

标签: php symfony testing phpunit

我正在为我的Symfony3应用程序编写功能测试,我遇到的问题是我无法接收控制器返回的数据。控制器的每次调用仍然返回301重定向。我注意到,每次调用控制器都会调用带有setTargetUrl方法的RedirectResponse类,该方法负责重定向到适当的控制器。当我使用我的应用程序作为用户时,一切都很好,但爬虫只返回有关重定向的信息。

以下是一个例子:

我的测试方法:

public function testListController()
{
    $client = static::createClient();
    $crawler = $client->request('GET', '/list');
    print_r($client->getResponse());
}

方法返回:

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="refresh" content="1;url=https://localhost/list/" />

    <title>Redirecting to http://localhost/list/</title>
</head>
<body>
    Redirecting to <a href="http://localhost/list/">https://localhost/list/</a>.
</body>

为什么我无法访问该页面的正确内容?每个挂钩都被禁用,在访问控制器之前没有任何方法可以调用。

1 个答案:

答案 0 :(得分:1)

此行为是由于路径定义末尾的斜杠。所以试试这个:

$crawler = $client->request('GET', '/list/');

而不是:

$crawler = $client->request('GET', '/list');

希望这个帮助