wicket测试发送ajax请求

时间:2015-11-10 13:41:57

标签: ajax events request wicket-tester

我前几天遇到过以下问题: 我有一个带有2个面板的Page.class。例如,Panel 1点击了Datatable。

@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异常发生在&#34; target.add(this)&#34;来自codeblock 2

当然它是null ..没有请求。

问题是如何触发第二个代码块? 未给出对面板1的访问,因为我仅测试面板2。这意味着,我无法点击dataTable中的一行,让面板1触发事件。

编辑:我正在使用wicket 6.18

1 个答案:

答案 0 :(得分:0)

我想它存在另一个答案,但在这种情况下它对我有所帮助:

我创建了一个AjaxRequestTarget模拟并发送事件。我验证这个方法被调用。 ajaxMockTarget.add(组分)