Как выполнить юнит-тестирование компонента Wicket с AbstractAjaxTimerBehavior? - PullRequest
2 голосов
/ 04 февраля 2011

У меня есть панель 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);

1 Ответ

3 голосов
/ 04 февраля 2011

Поскольку поведение таймера не срабатывает само, как в браузере, вам придется использовать executeBehavior (AbstractAjaxBehavior) .

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

Просто посмотритекод executeAllTimerBehaviors(MarkupContainer).Обратите внимание, что этот метод предназначен только для AjaxSelfUpdatingTimerBehavior.

...