wicket 测试发送 ajax 请求

wicket test send ajax request

几天前我遇到了以下问题: 我有一个带有 2 个面板的 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)));

代码块 2

的 "target.add(this)" 上发生空指针异常

当然是null..没有请求

问题是如何触发第二个代码块? 无法访问面板 1,因为我只测试面板 2。这意味着,我无法单击数据表中的一行并让面板 1 触发该事件。

编辑:我正在使用 wicket 6.18

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

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