在构建GWT测试用例时,如何让服务器端初始化代码运行



我使用的是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方法从来没有被调用过。

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

另一个选项是从GwtTestCase调用initialize方法。您可以使用一个用@BeforeClass注释的方法在测试运行之前调用servlet的init方法一次。当然,您必须使servlet成为GWTRemoteServlet,这样才能正常工作。否则,servlet就不容易从GWT代码中访问。

相关内容

  • 没有找到相关文章

最新更新