Symfony功能测试在重定向后断言

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Symfony功能测试在重定向后断言相关的知识,希望对你有一定的参考价值。

我目前正在尝试编写功能测试但是在登录并重定向到新页面后我遇到了问题。一切正常,直到最后一次断言。重定向工作正常,重定向后的内容页面没问题,但我在上次断言时收到错误:断言false为真。在这里我没有发现任何可以帮助我解决类似问题

这是代码:

class DefaultControllerTest extends WebTestCase
{
public function testIndex()
{
    $client = static::createClient(array(),
        array(
            'HTTP_HOST' => 'locahost'

        ));



    $crawler = $client->request('GET', '/login');
    echo $client->getRequest()->getUri();


    $form = $crawler->selectButton('Login')->form(array(
        '_username' => 'user',
        '_password' => 'pass',
    ),'POST');


    $client->submit($form);
    $this->assertTrue($client->getResponse()->isRedirect());
    $client->followRedirect();
    echo $client->getRequest()->getUri();

    print_r( $client->getResponse()->getContent());


    $this->assertTrue($crawler->filter('html:contains("New")')->count() > 0);
}

}

答案

您必须获取followredirect()函数返回的爬虫:

$crawler = $client->followRedirect();

以上是关于Symfony功能测试在重定向后断言的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2 功能测试认证

谷歌开发者工具“网络”标签在重定向后清除

Auth::user 不会在重定向时保留

在提交表单后但在重定向和退出之前回显成功消息

单击后但在重定向之前刷新/重置链接/WPushButton 的 WResource

React js在重定向到新路由后显示通知