phpunit中的状态码错误

时间:2012-07-17 16:55:50

标签: symfony phpunit

即使请求的页面不存在,我总是在我的测试用例中获得状态代码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());

}

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

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

编辑:

以下是netbeans的代码:

enter image description here

2 个答案:

答案 0 :(得分:5)

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

$this->assertEquals(200, $client->getResponse()->getStatusCode());

通过这种方式,您可以看到已返回的状态代码。

您可能获得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());
}

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

答案 1 :(得分:0)

我花了3天时间试图解决这个问题。

我已将PHPUnit版本从3.6.11降级到3.5.14。

现在使用NetBeans可以更好地使用