2

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

在此处输入图像描述

4

2 回答 2

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

于 2012-07-18T08:26:52.653 回答
0

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

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

它现在与 NetBeans 一起工作得更好

于 2012-07-20T16:41:21.850 回答