Предпочтительный способ обработки AjaxEvents без отправки формы в Wicket-Tester

При условии, что у меня есть следующий код в калитке

TextField foo = ...;
TextField bar = ...;
bar.add(new AjaxEventBehavior("change") {

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            // do something
        }

    });

давайте также предположим, что foo и bar являются членами формы "dummyForm", которая имеет CompoundPropertyModel в качестве Model. Начальное значение поля "foo" - "Max"

Сейчас я пишу простой тест с Wicket-Tester:

formtester.setValue("foo", "Petra");
wickettester.executeBehavior(...); // execute behaviour on field bar
wickettester.getRequest().getPostParameters();
wickettester.getComponentFromLastRenderedPage("foo").getDefaultModelObjectAsString();

Когда я выполняю этот тест, первая строка помещает пост-параметр ("foo", "Petra") в mock-запрос. Поскольку поведение во втором утверждении не является поведением formubmit, CompoundPropertyModel не обновляется. Таким образом, в строке 4 модель foo по-прежнему "Макс", а не "Петра". Я заметил, что постпараметры были очищены после обработки поведения, поэтому также в третьей строке моего теста предлагается пустой список параметров.

Итак, теперь мой вопрос: каков предпочтительный способ "безопасного" параметра запроса между запросами, не отправляющими форму?

Большое спасибо за ваши ответы

1 ответ

Боюсь, вам придется их самим передавать. Они доступны в #getLastRequest() вместо #getRequest(),

Другие вопросы по тегам