私のSymfony3アプリケーションの機能テストを書いています。私はこのようなテストを持っています:symfony3の機能テスト、フォーム送信後のコンテナへのアクセス
public function testList()
{
$client = static::createClient();
$client->getCookieJar()->set($this->cookie);
$this->sender->method('isSuccessfull')->will($this->returnValue(true));
$container = $client->getContainer();
$container->set('app.service1', $this->object1);
$container->set('app.service2', $this->object2);
$crawler = $client->request('GET', '/list/1');
$form = $crawler->selectButton('Save')->form();
$client->submit($form);
}
フォームを提出するまではすべてが良いです。カーネルはフォームを送信している間に設定されたコンテナサービスを失います。フォームを提出した後も、これらのサービスはどのようにコンテナに入れることができますか?多分私の問題を解決するための他のオプションがありますか?
ありがとうございます。私のサービスは「本当の」サービスではありません。彼らは実際のサービスのモックです。 services_test.ymlでサービスのモックを渡す方法や拡張されたClientクラスでこれらのモックを追加する方法はありますか? – dtx
通常の 'service.yml'をインポートする' test_service.yml'にそれらを追加することは 'Client'を拡張する方が簡単ですので、いくつか特別な機能が必要な場合を除き' yml'だけにします。 – martin
私はそれを知っている:)しかし、サービスの議論としてモックを渡す方法は?上記のモックのコードでは、$ this-> object1と$ this-> object2です。 – dtx