我正在使用Wicket 6.20.0的CheckBoxMultipleChoice,并通过添加AjaxFormChoiceComponentUpdatingBehavior来利用AJAX功能。

这是按要求工作的。但是,使用WicketTester测试CheckBoxMultipleChoice的功能似乎是不可能的。

当我使用WicketTesterdebugComponentTrees()时,CheckBoxMultipleChoice的唯一路径是其直接路径,即I.E.没有子级CheckBox对象或类似的对象可以执行AJAX事件。

如何使用WicketTester执行AJAX事件,例如单击复选框之一?

最佳答案

CheckBoxMultipleChoice是一个“优化”的表单组件,即它使用String串联来创建其“子级”(即复选框)。如果使用的是CheckBox组件,则将导致更大的组件树和更多的内存消耗。

要使用WicketTester对其进行测试,您只需将请求参数设置为所有选定值即可:

tester.getRequest().addParameter(cbmc.getInputName(), "value1");
tester.getRequest().addParameter(cbmc.getInputName(), "value2");
// ...
tester.executeAjaxEvent(cbmc, "click");
// assert

09-11 17:39