1

我无法两次发送 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();
}
4

1 回答 1

1

如上所述:

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

于 2013-08-21T08:56:22.053 回答