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(组件)
几天前我遇到了以下问题: 我有一个带有 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(组件)