私は SonataAdminBundle と DoctrineORMBundle を使用しており、タグが投稿に対して多対多である投稿/タグの関係があるとしましょう。
Post フォームで機能テストを実行しようとしています。投稿フォームに表示されるタグは、タグ フォーム フィールドが別のリクエスト (Ajax 呼び出し) から取得され、Javascript によって投稿フォームにマージされるウィジェットをスローします。
これを行うために Javascript に頼るのは簡単ですが、WebTestCase クラスを使用して機能テストのシナリオになると、そのような機能をシミュレートするのが難しいことがわかりました。
Post の Create アクションをテストしていて、テスト ケースでこのコードを使用しているとします。
public function testCreate() {
$client = static::createClient();
$client2 = static::createClient();
//main request. The Post form
$crawler = $client->request('GET','/route/to/posts/create');
//second request (The Tag form) simulating the request made via Ajax
$crawler2 = $client2->request('GET','/admin/core/append-form-field-element?code=my.bundle.admin.tags);
}
上記のコードの問題は、タグフォームを投稿フォームにマージする方法がわからないため、この方法で一緒に送信されることです。何か案は?