我正在使用Wicket 6.20.0的CheckBoxMultipleChoice
,并通过添加AjaxFormChoiceComponentUpdatingBehavior
来利用AJAX功能。
这是按要求工作的。但是,使用WicketTester
测试CheckBoxMultipleChoice
的功能似乎是不可能的。
当我使用WicketTester
的debugComponentTrees()
时,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