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 回答