我已經開始玩Wicket,我選擇了Guice作爲依賴注入框架。現在我試圖學習如何爲WebPage對象編寫單元測試。檢票口和AtUnit
我google了一下,我發現this post,但它提到了AtUnit,所以我決定試一試。
我的網頁類看起來像這樣
public class MyWebPage extends WebPage
{
@Inject MyService service;
public MyWebPage()
{
//here I build my components and use injected object.
service.get(id);
....
}
}
我創建了模擬,以取代它的任何生產MyServiceImpl,我猜那吉斯與AtUnit手應該把它注射。
現在的問題是:
AtUnit預計,我標記目標對象與@unit - 那是因爲我可以通過已經創建的對象WicketTester
@Unit MyWebPage page = new MyWebPage(); wicketTester.startPage(page);
但平時沒事我會用類名稱調用startPage。
我覺得AtUnit預計還有一個目標對象是市場@Inject這樣AtUnit可以創建和管理它 - 但我得到一個org.apache.wicket.WicketRuntimeException:沒有附加到當前線程的主要應用。我可以指示AtUnit使用wicketTester的應用程序嗎?
- 因爲我沒有在MyWebPage使用@Inject(我認爲)的所有對象,應該由吉斯注入是空的(在我的例子服務引用爲null)
我真的找不到Wicket環境內的任何關於AtUnit的內容。我做錯了什麼,我錯過了什麼嗎?
好的,謝謝,仍然認爲AtUnit它不符合WicketTester使用最好庫。我想我會按照你的方式。 – kamiseq
這不再適用於Wicket> 1.5。 – weltraumpirat