Java 测试Ajax在ApacheWicket中提交表单

Java 测试Ajax在ApacheWicket中提交表单,java,ajax,forms,unit-testing,wicket,Java,Ajax,Forms,Unit Testing,Wicket,假设我有一个表单,如下所示,通过Ajax提交: import org.apache.wicket.request.mapper.parameter.PageParameters; 导入org.apache.wicket.markup.html.form.form; 导入org.apache.wicket.ajax.AjaxRequestTarget; 导入org.apache.wicket.ajax.form.AjaxFormSubmitBehavior; 导入org.apache.wicket

假设我有一个表单,如下所示,通过Ajax提交:

import org.apache.wicket.request.mapper.parameter.PageParameters;
导入org.apache.wicket.markup.html.form.form;
导入org.apache.wicket.ajax.AjaxRequestTarget;
导入org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
导入org.apache.wicket.markup.html.WebPage;
公共类FormPage扩展网页{
公共表单页面(最终页面参数){
表格=新表格(“我的表格”);
//Ajax提交
添加(新的AjaxFormSubmitBehavior(“提交”){
@凌驾
提交时受保护的void(AjaxRequestTarget目标){
super.onSubmit(target);//此行的断点
}
});
添加(表格);
}   
}
现在我需要测试表单,并在onSubmit方法中设置断点。以下是测试代码:

import org.apache.wicket.util.tester.FormTester;
导入org.apache.wicket.util.tester.WicketTester;
导入org.junit.Before;
导入org.junit.Test;
公共类TestFormPage{
私人WicketTester测试器;
@以前
公共作废设置(){
测试仪=新WicketTester(新WicketApplication());
}
@试验
public void homepagerenders成功(){
测试仪起始页(FormPage.class);
tester.AssertRenderPage(FormPage.class);
FormTester FormTester=tester.newFormTester(“myForm”);
formTester.submit();
}
}

但问题是,当我运行单元测试时,从未到达设置了断点的行。想知道出了什么问题吗?

在测试中,下面的行将提交一个普通表单,但不会触发Ajax提交事件

formTester.submit();
为了触发Ajax提交事件,应该使用WicketTester#executeAjaxEvent,如下所示:

import org.apache.wicket.util.tester.WicketTester;
导入org.junit.Before;
导入org.junit.Test;
公共类TestFormPage{
私人WicketTester测试器;
@以前
公共作废设置(){
测试仪=新WicketTester(新WicketApplication());
}
@试验
public void homepagerenders成功(){
测试仪起始页(FormPage.class);
tester.AssertRenderPage(FormPage.class);
executeAjaxEvent(“myForm”、“submit”);
}
}
参考: