1

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);

また、特にテスト用にフォームを変更することも検討していましたが、このドロップダウン リストの値を何らかの方法で投稿しない可能性があります。しかし、それは悪い習慣のようです。

4

1 に答える 1

0

コードが AJAX Symfony2 コードに表示されません。Controller に完全な機能がありますか?あなたはこれを知っていますか:

if( $request->isXmlHttpRequest() )

于 2012-10-01T18:16:15.483 に答える