【问题标题】:How to unit-test a Wicket component with AbstractAjaxTimerBehavior?如何使用 AbstractAjaxTimerBehavior 对 Wicket 组件进行单元测试?
【发布时间】:2011-02-04 07:21:26
【问题描述】:

我有一个带有 AbstractAjaxTimeBehavior 的 Wicket 面板,我想对其进行单元测试。如何在单元测试期间触发最终调用 AbstractAjaxTimeBehavior.onTimer(AjaxRequestTarget target) 方法的 ajax 事件?

behavior = new AbstractAjaxTimerBehavior(Duration.seconds(pollingPeriodInSeconds)) {
  protected void onTimer(AjaxRequestTarget target) {
     // how to unit test this?
  }
}
add(behavior);

【问题讨论】:

    标签: java unit-testing wicket


    【解决方案1】:

    由于计时器行为不会像在浏览器中那样自行触发,因此您必须自己使用executeBehavior(AbstractAjaxBehavior)

    if (!timerBehavior.isStopped())
      wicketTester.executeBehavior(timerBehavior);
    

    看看executeAllTimerBehaviors(MarkupContainer)的代码就知道了。请注意,此方法仅适用于AjaxSelfUpdatingTimerBehavior

    【讨论】:

      猜你喜欢
      • 2011-10-02
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-16
      • 1970-01-01
      • 2012-01-08
      • 1970-01-01
      • 2019-09-30
      相关资源
      最近更新 更多