0

実際のウィケットでフォームを送信すると、コンポーネントに対して onInitialize() が呼び出されますが、ウィケット テスター (より具体的には FormTester) で送信すると、コンポーネントの onInitialize() は呼び出されません。

単体テストはすべて良好であったにもかかわらず、フォームが機能していないことに遭遇したとき、それは混乱を引き起こしました。

例:

@Test
public void test() {

    tester.startPage(SomePage.class);

    tester.assertComponent("content:form:fields:items:0:component", TextField.class);

    FormTester ft = tester.newFormTester("content:form");

    ft.setValue("fields:items:0:component:input", "test");

    ft.submit();

    tester.assertVisible("content:contactForm:successMsg");

}

「successMsg」は成功時にのみ表示されます。コンポーネントの onInitialize() で発生するいくつかのロジックが原因で、テストは成功しましたが、実際には失敗しました。

これがウィケットの問題なのか、それとも私たちのやり方が間違っているのか、今では完全にはわかりません.

4

1 に答える 1

0

onInitialize() はフォーム送信とは関係ありません。コンポーネントがページのコンポーネント ツリーに最初にアタッチされたときに呼び出されます。

ComponentInitializationIntegrationTest を見てください。

于 2012-12-13T06:31:14.423 に答える