【发布时间】:2012-07-17 16:55:50
【问题描述】:
即使请求的页面不存在,我的测试用例中总是会收到状态代码 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 获得的代码:
【问题讨论】:
-
当您使用浏览器浏览页面时,您会得到什么状态码?它会将您重定向到登录页面还是收到 404?也许这就是问题所在!
-
还可以考虑使用
assertEquals而不是assertTrue:$this->assertEquals(200, $client->getResponse()->getStatusCode());。当此测试失败时,您将知道您拥有的状态代码而不是 200。 -
当我浏览一个不存在的页面时,我遇到了 404 错误。