如何在 WicketTester 中的 CheckBoxMultipleChoice 上执行 AJAX 事件

How to execute an AJAX event on a CheckBoxMultipleChoice in WicketTester

我正在使用 Wicket 6.20.0 的 CheckBoxMultipleChoice 并通过添加 AjaxFormChoiceComponentUpdatingBehavior.

来利用 AJAX 功能

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

当我使用 WicketTesterdebugComponentTrees() 时,CheckBoxMultipleChoice 的唯一路径是它的直接路径,即我无法获得子 CheckBox 对象或类似对象来执行 AJAX 事件。

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

CheckBoxMultipleChoice 是一个 "optimized" 表单组件,即它使用字符串连接来创建其 "children" - 复选框。如果它使用 CheckBox 组件,那么它会导致更大的组件树和更多的内存消耗。

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

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