Тест калитки отправить запрос ajax
Несколько дней назад я столкнулся со следующей проблемой: у меня есть Page.class с двумя панелями. Например, панель 1 получает щелчок по таблице данных.
@Override
protected void onRowClick(final AjaxRequestTarget target, final Item<Template> item) {
this.send(this.getPage(), Broadcast.BREADTH, new CustomAjaxEvent(target));
}
Пользовательское событие Ajax содержит объект RequestTarget и будет использовано позже для идентификации инициированного события на другой панели.
Теперь во второй панели у меня есть следующий метод:
@Override
public void onEvent(IEvent<?> event) {
Object payload = event.getPayload();
if(payload instanceof CustomAjaxEvent){
((CustomAjaxEvent)payload).target.add(this)
}
super.onEvent(event);
}
Теперь я собираюсь протестировать этот материал.. (следующий код в testClass)
panel.send(panel.getPage(),
Broadcast.BREADTH,
new CustomAjaxEvent(RequestCycle.get().find(AjaxRequestTarget.class)));
Исключение Nullpointer возникает на "target.add(this)" из кодового блока 2
Конечно, это ноль.. Нет запроса.
Вопрос в том, как я могу запустить второй кодовый блок? Доступ к панели 1 не предоставляется, потому что я тестирую только панель 2. Это означает, что я не могу щелкнуть строку в dataTable и позволить панели 1 вызвать событие.
РЕДАКТИРОВАТЬ: я использую калитку 6.18
1 ответ
Я предполагаю, что существует другой ответ, но в этом случае он мне достаточно помог:
Я создал макет AjaxRequestTarget и отправил событие. Я проверяю, что этот метод вызывается. ajaxMockTarget.add(компонент)