2012-01-31 40 views
3

我正在使用GWT 2.4。我有很多擴展GwtTestCase的測試文件。我的問題是,我如何以及在哪裏放置代碼,以便服務器端在我的測試運行之前初始化一些數據?如何在構建GWT測試用例時獲取服務器端初始化代碼?

我試圖創建一個簡單的servlet ...

public class PopulateCacheServlet extends HttpServlet { 

public void init(ServletConfig config) throws ServletException { 
    try { 
     PopulateCache.addTestEntriesToCache(); 
     System.out.println("Dummy entries written to cache."); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} // init 

} 

,並把它的定義,我模塊的.gwt.xml文件...

<servlet path="/populatecache" class="com.myco.clearing.web.PopulateCacheServlet" /> 

,但我注意到,這個初始化方法永遠不會被調用。

回答

0

您可以簡單地將一個靜態代碼塊添加到您的PopulateCacheServlet類中,或者在構造函數中初始化該類。靜態代碼塊,如果你想運行該方法只有一次(每個JVM)。如果要分別設置每個servlet,請在構造函數中初始化。好吧,這不是最美麗的解決方案,但因爲它是一個測試類...

另一種選擇是你從GwtTestCase調用初始化方法。在測試運行之前,您可以使用用@BeforeClass註釋的方法調用servlet的init方法一次。當然,你必須讓你的servlet的GWT RemoteServlet爲了這個工作。否則,不容易從GWT代碼訪問該servlet。

相關問題