我无法两次发送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();
}
答案 0 :(得分:1)
如上所述:
我自己找到了解决问题的方法。问题是我没有在ajax返回目标target.add(feedbackpanel);上添加FeedbackPanel。我在第二次提交后看到的错误没有在响应中发送,而WicketTester没有找到它。但是由于我没有在Ajax调用的目标上添加FeedbackPanel,html确实被重新渲染,错误仍然可见。