私はSymfony2のセッションサービスを使ってデータを取得するアクションのための機能テストを書いています。私のテストクラスのsetUp
メソッドでは、私は$this->get('session')->set('foo', 'bar');
と呼んでいます。 setUp
または実際のテスト方法ですべてのセッションデータ(print_r($this->get('session')->all());
を使用)を出力すると、私はfoo => bar
に戻ります。しかし、テストされているアクションからセッションデータを出力しようとすると、空の配列に戻ります。誰がなぜこれが起こっているのか、そして私がそれを防ぐ方法を知っていますか?機能テスト中にSymfony2のセッションサービスでデータを保持する方法はありますか?
$_SESSION['foo'] = 'bar'
をsetUp()
から呼び出すと、データは持続され、私はそのアクションからアクセスできます。この問題は、Symfony2のセッションサービスにとってはローカルのようです。それでも動作しない場合は、セッションを保存してください
$client = static::createClient();
$container = $client->getContainer();
::私はdidnの
$session = $container->get('session');
$session->set('foo', 'bar');
$session->save();
これは動作しますが、欠点は、私は、各テストメソッド内でこれをしなければならないということです。私は 'setUp'メソッドのように、よりグローバルなスコープでそれを行う方法を探します。または私はBehatを試してみるかもしれません:)あなたの答えをありがとう! –