0

AjaxLink を使用してサイトのロケールを変更しています。

@Override
public void onClick(AjaxRequestTarget target) {
    Session.get().setLocale(newLanguage.getLocale());
    // Add whole page to update instead of single components
    target.add(getPage());
}

期待どおりに機能します。フォームのコンテンツが保持されている間、ページ全体のすべての i18n 文字列が更新されます。素晴らしい。

しかし、WicketTester でのテストはうまくいきません。clickLink と executeAjaxBehavior の両方のメソッドが AjaxLink をトリガーしますが、WicketTester はモデル値の変更を検出しません。

@Test
public void check() {
    tester.startPage(SwitchLangPage.class);
    tester.clickLink("link", true);
    tester.assertModelValue("link:label", "English");
}

ここで重要なことを見逃していますか?

(ウィケット 6.19)

編集:簡略化されたパネルを使用した Gist

4

0 に答える 0