phpunit中的状态码错误

Cho*_*hop 2 phpunit symfony

即使请求的页面不存在,我总是在我的测试用例中获得状态代码200/ok.

public function testCompleteScenario()
{
    $client = static::createClient();

    $container = $client->getContainer();
    $kernel    = $client->getKernel();

    $crawler = $client->request('GET', '/somethingnotexisting');
    $this->assertTrue(200 === $client->getResponse()->getStatusCode());

}
Run Code Online (Sandbox Code Playgroud)

我正在使用带有netbeans 7.1的phpunits,并且我的symfony防火墙配置为仅允许经过身份验证的用户.否则,他们会重定向到登录页面.

可能有一些php.ini调优吗?

编辑:

这是我从netbeans获得的代码:

在此输入图像描述

Jak*_*las 5

首先做@AdrienBrault建议的,使用assertEquals:

$this->assertEquals(200, $client->getResponse()->getStatusCode());
Run Code Online (Sandbox Code Playgroud)

这样您就可以看到返回的状态代码.

您可能正在获得301或302(重定向),因为功能测试客户端默认情况下不会重定向.

尝试这样的事情:

public function testCompleteScenario()
{
    $client = static::createClient();

    $container = $client->getContainer();
    $kernel    = $client->getKernel();

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

    $this->assertEquals(200, $client->getResponse()->getStatusCode());
}
Run Code Online (Sandbox Code Playgroud)

请参阅:http://symfony.com/doc/current/book/testing.html#redirecting