3

我正在使用 GWT 2.4。我有许多扩展 GwtTestCase 的测试文件。我的问题是,我如何以及在哪里放置代码,以便服务器端在我的测试运行之前初始化一些数据?

我尝试创建一个简单的 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" />

但我注意到这个 init 方法从未被调用过。

4

1 回答 1

0

您可以简单地将静态代码块添加到您的PopulateCacheServlet类或在构造函数中初始化该类。如果您只想运行该方法一次且仅一次(每个 JVM),则使用静态代码块。如果要分别设置每个 servlet,请在构造函数中进行初始化。好吧,这不是最漂亮的解决方案,但因为它是一个测试类......

另一种选择是从GwtTestCase. 您可以使用带有注释@BeforeClass的方法在测试运行之前调用 servlet 的 init 方法一次。当然,您必须使您的 servlet 成为 GWTRemoteServlet才能使其工作。否则,很难从 GWT 代码访问 servlet。

于 2012-02-07T09:39:49.043 回答