Как проверить AjaxEventBehavior ("onClick") для переключателя Apache Wicket? - PullRequest
4 голосов
/ 07 декабря 2011

Я использую Apache Wicket и столкнулся с проблемой при тестировании AjaxEventBehavior для кнопки Radio. На самом деле я хочу протестировать событие «onClick», как в моем случае, когда я выбираю / щелкаю переключатель в радиогруппе, указанная страница отображается.

Фрагмент кода:

RadioGroup<Boolean> selectPageRadioGroup =
        new RadioGroup<Boolean>("selectPageRadioGroup", new Model<Boolean>(Boolean.TRUE));
selectPageRadioGroup.setDefaultModel(new Model<Boolean>(Boolean.TRUE));
final Radio<Boolean> radioButton1 =
        new Radio<Boolean>("radioButton1", new Model<Boolean>(Boolean.FALSE));
radioButton1.add(new AjaxEventBehavior("onclick") {
    @Override
    protected void onEvent(AjaxRequestTarget target) {
        setResponsePage(MyWebPage.class);
    }
});
selectPageRadioGroup.add(radioButton1);

1 Ответ

8 голосов
/ 08 декабря 2011

Если вы уже сделали

WicketTester tester = new WicketTester();
tester.startPage(PageContainingRadioButton.class);

или аналогичные startPanel (Wicket 1.4) или startComponent (Wicket 1.5), чтобы ваш тест отображал страницу, содержащую кнопку по известному пути, вы должны иметь возможность заставить WicketTester имитировать поведение ajax чем-то как

tester.executeAjaxEvent("blabla:form:selectPageRadioGroup:radioButton1", "onclick");

(Вам, конечно, придется скорректировать этот путь.)

, а затем убедитесь, что все правильно с

tester.assertRenderedPage(MyWebPage.class);  
...