実際のウィケットでフォームを送信すると、コンポーネントに対して 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() で発生するいくつかのロジックが原因で、テストは成功しましたが、実際には失敗しました。
これがウィケットの問題なのか、それとも私たちのやり方が間違っているのか、今では完全にはわかりません.