symfony2 アプリケーションで、(以前のドロップダウン リストの選択に応じて) 動的に追加されるドロップダウン リストを持つフォームをテストしようとしています。
基本的に私の問題は、クローラーが表示しないため、データベースに保存する必要があるドロップダウン リストの値を設定できないことです。
私がこれを行う方法を知っている人はいますか?おそらく、テストでフォーム要素「ドロップダウンリスト」を作成し、その値を設定しますか?
これが私のコードです:
// Fill lesson create form
$form = $crawler->selectButton('submit')->form();
$lesson_name = 'Lesson_Test_'.time();
$form['LessonDetailForm[name]'] = $lesson_name;
$form['LessonDetailForm[description]'] = 'This is a test lesson.';
$form['LessonDetailForm[text]'] = 'The content of this lesson is quite short.';
// This worked on a non-dynamic dropdown list :
//$availableOptionValues = $form['LessonDetailForm[topic]']->availableOptionValues();
//$form['LessonDetailForm[topic]']->select($availableOptionValues[1]);
//$form['LessonDetailForm[topic]'] = 1;
// Here I would like to build the dropdown list myself:
$form['LessonDetailForm[topic]'] = new Form(...);
$crawler = self::$client->submit($form);
また、特にテスト用にフォームを変更することも検討していましたが、このドロップダウン リストの値を何らかの方法で投稿しない可能性があります。しかし、それは悪い習慣のようです。