2011-07-17 4 views
6

これについてのドキュメントは見つかりませんでした。Symfony 2で、認証が必要な機能テストの作成方法は?

私はクライアントオブジェクトを使用して/ loginにリクエストを送信し、フォームに記入して送信します。それは正常に動作しますが、資格情報が間違っているかのように、/ loginに302応答が戻ってきています。

いずれにしても、最初のリクエストの後にセッションテーブルに少なくとも1つの行があるはずですが、何もありません。そんなことがあるものか?

どのような考えですか?

編集:ここでは、コードがあります:

// Go to login page 
    $client = $this->createClient(); 
    $crawler = $client->request('GET', '/login'); 
    $this->assertTrue($crawler->filter('html:contains("Username")')->count() > 0); 

    // Fill in the form and submit it 
    $form = $crawler->selectButton('login')->form(); 
    $form['_username'] = 'admin'; 
    $form['_password'] = 'admin'; 
    $client->submit($form); 
    $this->assertEquals(302,$client->getResponse()->getStatusCode()); 
    $this->assertFalse($client->getResponse()->isRedirect('http://localhost/login')); 

最後のassertが

+0

このテストを実行するコードの部分を表示できますか? – Ibu

+0

@Ibu確かに、そこには – HappyDeveloper

+0

がありますか?あなたはこの試験に最終的に成功しましたか?私はあなたが覚えていると仮定して、それは長いショットだと知っていますが、おそらく...? – mmmm

答えて

2

を失敗したあなたは、HTTP基本認証を使用して新しいfirewalを作成する必要があります。

 
security: 
    ... 
    firewalls: 
     functional_test: 
      pattern: /secure/.* 
      stateless: true 
      http_basic: 
       provider: provider_name 
    ... 

を次に、このようなクライアントを作成します。

$client = $this->createClient(array(), array(
    'PHP_AUTH_USER' => 'username', 
    'PHP_AUTH_PW' => 'password', 
)); 

ハッピーコーディング!

関連する問題