如何在使用GWTTestCase时使用web.xml或调用servlet init()

时间:2010-08-05 12:47:28

标签: unit-testing gwt

我正在使用GWTTestCase类,我必须使用

指定要在module.gwt.xml文件中使用的任何servlet
<servlet path="/somepath" class="com.example.SomeServlet"/>.

实际要求是加载其他初始化资源的servlet(使用GenericServlet.init()方法)以便运行测试。 web.xml是显而易见的选择,因为它适用于正常的应用程序设置。声明初始化参数也很有用。

如何在进行单元测试时让GWT读取web.xml文件?

2 个答案:

答案 0 :(得分:2)

我认为你必须:

  1. 扩展您的servlet并覆盖init()方法以传递适当的参数
  2. *.gwt.xml中配置该servlet(我建议使用专门针对测试的模块,以便<servlet>不会混乱生产模块)
  3. 作为替代方案,因为它看起来更像是集成测试而不是单元测试,所以不要使用GWTTestCase,而是使用WebDriver / Selenium和专门为您的测试配置的轻量级servlet容器(例如Jetty)。

答案 1 :(得分:0)

我会尝试Google Guice及其servlet扩展。它允许您动态绑定servlet而不是web.xml。真的很好。例如,您可以加载特定的测试模块。官方文档中有servlet扩展的示例。希望它能为您提供所需的一切。