Предпочтительный способ обработки 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()
,