Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony2.7 PhpUnit:简单功能测试不';仅当assertEquals($statusCode,$var)时无法工作_Php_Symfony_Phpunit - Fatal编程技术网

Symfony2.7 PhpUnit:简单功能测试不';仅当assertEquals($statusCode,$var)时无法工作

Symfony2.7 PhpUnit:简单功能测试不';仅当assertEquals($statusCode,$var)时无法工作,php,symfony,phpunit,Php,Symfony,Phpunit,我决定现在(从2016年开始!)使用Symfony2和it默认测试框架PhpUnit为我的所有项目编写动态测试代码,我编写了非常简单的功能测试,以检查我的一个页面(主页)的状态代码是否正确,但它失败了“faild断言302与预期的200匹配”,尽管是手动的,Symfony在工具栏中显示it成功(200) 302状态代码为重定向。可能该路由/位于防火墙后面,当您在浏览器中测试时,您在测试中被重定向到登录页面,并且您已经登录。也许/route正在进行一些重定向,在工具栏中,您会看到200个重定向到的

我决定现在(从2016年开始!)使用Symfony2和it默认测试框架PhpUnit为我的所有项目编写动态测试代码,我编写了非常简单的功能测试,以检查我的一个页面(主页)的状态代码是否正确,但它失败了“faild断言302与预期的200匹配”,尽管是手动的,Symfony在工具栏中显示it成功(200)


302状态代码为重定向。可能该路由/位于防火墙后面,当您在浏览器中测试时,您在测试中被重定向到登录页面,并且您已经登录。也许/route正在进行一些重定向,在工具栏中,您会看到200个重定向到的路由。只需转储
$client->getResponse()
并查看所有文件,如内容和标题。如果是302重定向,则需要“位置”标题来查看重定向到的位置。也许这会让你知道发生了什么

请提供更多上下文。你的控制器看起来怎么样?它真的会总是返回相同的响应吗?这是真的,因为有防火墙,但我如何才能在测试环境中删除防火墙?@Saint CyrMAPOUKA您可以拥有一个安全配置文件,该文件仅在
测试
环境中导入,并覆盖默认的安全配置(这是在
Kernel
的子类中完成的,通常是
AppKernel
)。看看
symfony/symfony standard
是如何在其环境中完成的。
public function testDashboard()
{
    $client = static::createClient();
    $crawler = $client->request('GET', '/');
    $this->assertEquals(200, $client->getResponse()->getStatusCode());
}