即使请求的页面不存在,我总是在我的测试用例中获得状态代码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的代码:
答案 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可以更好地使用