Wickettester对两个相同形式的提交

时间:2013-02-18 10:45:53

标签: java wicket-tester

我无法两次发送wickettester表单并验证第一次提交的错误消息在第二次提交时被删除。

在下面给出的代码中,我首先提交一个空表单,它会给出错误消息。 然后我想提交相同的表单但有效的输入,并断言现在删除了第一次出现的错误消息。

测试似乎正在正常运行但是当我更改测试中的java代码时,它不会在提交搜索时删除错误消息,正确地,第二次测试仍然断言没有错误消息...测试中的第二次提交似乎是从第一次提交开始,因此第一次提交不参加我的测试。

@Test
public void assertThatErrorMessagesAreRemoved() {
    PageParameters pp = new PageParameters();
    // given
    WicetTester tester = new WicketTester(new MyApplication());
    tester.startComponentInPage(new MyPanel("myPanel", pp));

    //when
    FormTester form = tester.newFormTester("panel:formcontainer:form");
    form.submit();

    // then
    tester.assertErrorMessages("searchTerm.Required_value");

    //and given
    form = tester.newFormTester("panel:formcontainer:form");
    form.setValue("searchTerm", "a");

    //when
    form.submit();

    // then
    tester.assertNoErrorMessage();
}

1 个答案:

答案 0 :(得分:1)

如上所述:

我自己找到了解决问题的方法。问题是我没有在ajax返回目标target.add(feedbackpanel);上添加FeedbackPanel。我在第二次提交后看到的错误没有在响应中发送,而WicketTester没有找到它。但是由于我没有在Ajax调用的目标上添加FeedbackPanel,html确实被重新渲染,错误仍然可见。