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 に答える