2

初めての Wicket コンポーネントを書きました :)ListViewいくつかのRadio入力フィールドを持つ が含まれています。ここで、選択した値がモデルに到達するかどうかを単体テストしたいと思います。

フォームを期待するように、私はそのWicketTester.newFormTester("myForm")場でフォームを作成しようとします:

public void testDataBinding()
{
    Model model = ...
    MyRadioComponent myRadioComponent = new MyRadioComponent (...);
    Form form = new Form("myForm", ...);
    form.add(myRadioComponent);
    WicketTester wicketTester = new WicketTester();
    wicketTester.startComponentInPage(form);
    // FormTester formTester = wicketTester.newFormTester("myForm");
    // ...
}

wicketTester.startComponentInPage(form)結果は次のようになります。

Failed: Component [myForm] (path = [0:x]) must be applied to a tag of type [form], 
        not: '<span wicket:id="myForm" id="myForm3">'

これを修正する方法、および/またはそのような入力コンポーネントを正しい方法でテストする方法はありますか?

4

2 に答える 2

3

そのコンポーネントにstartComponentInPagea を使用していると思います。<span>Wicket は、がタグにForm関連付けられていることを確認し<form>ます。これが、このエラーが発生する理由です。

<form>内部にを含む独自のテスト ページを作成する必要があります。org.apache.wicket.markup.html.form.NumberTextFieldTestインライン マークアップの例については、を参照してください。それ以外の場合は、関連する html マークアップ ファイルを使用してフォーム テスト ページ クラスを作成します。

于 2014-04-17T17:06:19.310 に答える