当我在真实的wicket中提交表单时,我的组件会调用onInitialize(),但是当我使用wicket测试器(更具体地说是使用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()中发生了一些逻辑。
我现在还不完全确定这是一个检票口问题,还是我们做错了。
答案 0 :(得分:0)
onInitialize()与表单提交无关。当组件首次附加到页面的组件树时调用它。
看一下ComponentInitializationIntegrationTest。