我有一个 Wicket 面板,其中有 AbstractAjaxTimeBehavior ,我想进行单元测试。如何在单元测试期间触发 ajax 事件并最终调用 AbstractAjaxTimeBehavior
的 .onTimer(AjaxRequestTarget target)
方法?
behavior = new AbstractAjaxTimerBehavior(Duration.seconds(pollingPeriodInSeconds)) {
protected void onTimer(AjaxRequestTarget target) {
// how to unit test this?
}
}
add(behavior);
最佳答案
由于计时器行为不会像在浏览器中那样自行触发,因此您必须使用 executeBehavior(AbstractAjaxBehavior)你自己。
if (!timerBehavior.isStopped())
wicketTester.executeBehavior(timerBehavior);
看看executeAllTimerBehaviors(MarkupContainer)
的代码。请注意,此方法仅适用于 AjaxSelfUpdatingTimerBehavior
。
关于java - 如何使用 AbstractAjaxTimerBehavior 对 Wicket 组件进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4895514/