1

ウィケットスターフォームを2回送信し、最初に表示されたエラーメッセージが2回目の送信で削除されたことを確認するのに問題があります。

以下のコードでは、最初にエラーメッセージを表示している空のフォームを送信します。次に、同じフォームを送信しますが、有効な入力を使用して、最初の実行からのエラーメッセージが削除されたことを表明します。

テストは正しく実行されているようですが、テスト対象のJavaコードを変更して、検索が送信されたときにエラーメッセージが削除されないようにすると、2回目にテストでエラーメッセージがないと断言されます...テストの2回目の送信は、最初の送信と同じ場所から開始されているようです。したがって、最初の送信は私のテストに参加していません。

@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を追加しなかったことです。2回目の送信後に表示されたエラーは応答で送信されず、WicketTesterはそれを検出しませんでした。しかし、Ajax呼び出しのターゲットにFeedbackPanelを追加しなかったため、htmlが再レンダリングされ、エラーが引き続き表示されました。

于 2013-08-21T08:56:22.053 に答える