Тест калитки отправить запрос 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(компонент)

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