如何测试ajax表单?使用FormTester?

时间:2017-01-06 14:24:55

标签: 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
    protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
        result.setDefaultModelObject(s);
        target.add(result);
    }
};
form.add(submit);

如何使用FormTester或其他方式测试此类表单?

2 个答案:

答案 0 :(得分:1)

只需使用FormTester,它将负责模拟Ajax请求:

formTester.submit(button);

答案 1 :(得分:0)

确实,我可以使用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");