2011-02-04 105 views
2

我有一個Wicket面板,它有AbstractAjaxTimeBehavior,我想單元測試。在單元測試期間,如何觸發ajax事件,最終調用AbstractAjaxTimeBehavior.onTimer(AjaxRequestTarget target)方法?如何使用AbstractAjaxTimerBehavior對Wicket組件進行單元測試?

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

回答

3

由於計時器的行爲本身不會觸發如在瀏覽器中,你將不得不使用自己executeBehavior(AbstractAjaxBehavior)

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

只是看看的executeAllTimerBehaviors(MarkupContainer)代碼。請注意,此方法僅適用於AjaxSelfUpdatingTimerBehavior

相關問題