2015-04-07 50 views
0

我有一個函數,它將onload()方法的一些javascript附加到AjaxRequestTarget。如何在JUnit測試上測試wicket ajaxBehavior上的附加javascript?

我通過

add(onload); 

加載和有載由具有像

AjaxEventBehavior event = new AjaxEventBehavior("onload") { 
     @Override 
     protected void onEvent(final AjaxRequestTarget target) { 
      attachJavascriptBehavior(target); 
     } 
    }; 
    return event; 

代碼attachJavascriptBehavior增加了一些JavaScript作爲文本到目標。

我想用WicketTester測試它。

到目前爲止,我知道我可以像電話:

tester.executeAjaxEvent("some:path", "onclick"); 

,也許同樣會以某種方式申請的onload也。我發現,然後我可以叫

tester.assertRenderedPage(MyWebPage.class); 

以測試頁面的事件(事件抓住了一些內容的大小)後呈現,但即使我在瀏覽器中得到控制檯的錯誤,這個測試變爲出奇的通過。如何捕獲console.log報告了javascript錯誤?

來源:

How to test AjaxEventBehavior("onClick") for Apache Wicket radio button?

+0

測試過,沒有捕捉到我的錯誤:tester.assertNoErrorMessage(); – mico

回答

2

一般提示,您可以訪問到最後的響應與

String responseTxt = tester.getLastResponse().getDocument(); 

,那麼你可以查閱一下已經返回到客戶端。

+0

對。您需要使用最後一個響應作爲字符串,因爲Ajax調用不會重新繪製整個頁面。通常,Ajax響應僅爲頁面的部分返回新的標記。 –

+0

這給了一些東西,並且有點正確的解決方案。我沒有給這裏任何有用的東西,因爲當我拿到文檔時,最後一頁有一個等待圖標在數據的位置滾動。也許一個計時器等待幾秒鐘會有所幫助,或者我繞過這個測試是不可能的。 – mico

+0

添加10秒的超時並沒有改變任何東西。 – mico