Wicket 如何测试ajax表单?用FormTester?
我有一个ajax表单,看起来像Wicket 如何测试ajax表单?用FormTester?,wicket,Wicket,我有一个ajax表单,看起来像 Form<Void>form=new Form<Void>("form"); add(form); name=new TextField<String>("name"); form.add(name); age=new TextField<Integer>("age"); form.add(age); submit=new AjaxButton("submit") { @Override protec
Form<Void>form=new Form<Void>("form");
add(form);
name=new TextField<String>("name");
form.add(name);
age=new TextField<Integer>("age");
form.add(age);
submit=new AjaxButton("submit") {
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
result.setDefaultModelObject(s);
target.add(result);
}
};
form.add(submit);
Formform=新表格(“表格”);
添加(表格);
名称=新文本字段(“名称”);
表格.加入(姓名);
年龄=新文本字段(“年龄”);
表格.加入(年龄);
提交=新建AjaxButton(“提交”){
@凌驾
提交时受保护的void(AjaxRequestTarget目标,表单){
result.setDefaultModelObject;
目标。添加(结果);
}
};
添加(提交)表格;
如何使用
FormTester
,或者以其他方式测试这样的表单?只要使用FormTester,它将负责模拟Ajax请求:
formTester.submit(button);
的确,我可以使用FormTester,但我必须这样做
wicketTester.executeAjaxEvent("form:submit", "click");
而不是
formTester.submit();
另外,由于FormTester将.setValue()
中给定的值放入post参数中,因此我们可以让BaseWicketTester.serializeFormRequest也这样做,因此我们不需要FormTester:
wicketTester.getComponentFromLastRenderedPage("form:name").setDefaultModelObject("foo");
wicketTester.getComponentFromLastRenderedPage("form:age").setDefaultModelObject("7");
wicketTester.executeAjaxEvent("form:ajx", "click");