在Wicket-Tester中处理非表单提交AjaxEvents的首选方法

时间:2015-03-03 10:01:16

标签: wicket wicket-6 wicket-tester

假设我在wicket中有以下代码

TextField foo = ...;
TextField bar = ...;
bar.add(new AjaxEventBehavior("change") {

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            // do something
        }

    });

让我们进一步假设foo和bar是具有CompoundPropertyModel作为模型的表单“dummyForm”的成员。 “foo”-field的初始值是“Max”

现在我用Wicket-Tester写一个简单的测试:

formtester.setValue("foo", "Petra");
wickettester.executeBehavior(...); // execute behaviour on field bar
wickettester.getRequest().getPostParameters();
wickettester.getComponentFromLastRenderedPage("foo").getDefaultModelObjectAsString();

当我执行此测试时,第一行在模拟请求中放置一个post-parameter(“foo”,“Petra”)。由于第二个语句中的行为不是formubmit-behavior,因此CompoundPropertyModel不会更新。所以在第4行中,foo的模型值仍然是“Max”而不是“Petra”。我注意到后处理参数在处理完行为后被清除了,所以我测试的第三行也为我提供了一个空的参数列表。

现在我的问题是:在非表单提交请求之间“安全”请求参数的首选方法是什么?

非常感谢您的回答

1 个答案:

答案 0 :(得分:0)

我担心你必须自己转移它们。 它们位于#getLastRequest()而不是#getRequest()