【发布时间】:2023-04-08 04:26:01
【问题描述】:
我正在开发一个以 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)?
【问题讨论】:
-
您能否向我们展示一些代码,以便为您的问题提供更好的背景信息?
标签: java unit-testing servlets