测试servlet的部署

时间:2016-03-14 08:22:05

标签: java unit-testing servlets

我正在处理一个以war格式发布的servlet(包含Jersey REST服务器)。我编写了大量的单元测试来彻底测试代码库。但是,我经常遇到战争没有正确开始的问题。

这主要是由于我在web.xml文件中犯了某种错误。例如,我重命名了xml中提到的一些类,而没有更改xml本身中的相应​​行。问题是在我的测试中我创建了一个 debug Application所以从不考虑xml。更重要的是,让我说我有以下(泽西岛)ResourceConfig

import org.glassfish.jersey.server.ResourceConfig;

public class MyConfig extends ResourceConfig {
  public MyConfig() {
    register(...);
  }
}

现在假设我在web.xml

中有错误
<init-param>
  <param-name>javax.ws.rs.Application</param-name>
  <param-value>MyMisspelledConfig</param-value>
</init-param>

我的单元测试看起来像这样:

public class ServerTest extends JerseyTest {

    @Override
    protected Application configure() {
        return new MyConfig();
    }

    @Test
    public void test() {
      //...
    }

}

测试通过,但部署的servlet甚至无法启动......

有没有办法自动测试默认部署(包括web.xml)?

1 个答案:

答案 0 :(得分:0)

我知道测试部署描述符 web.xml的唯一方法是在开发者机器上的本地服务器上部署war(tomcat或jetty是很好的候选者)。 Netbeans或Eclipse提供了很好的集成,打开了浏览器窗口到Web应用程序的根目录。

然后,您可以手动查看某些页面,或者如果您喜欢自动化测试,则可以使用优秀的Selenium来播放一些记录的scenarii控制部分。