我在泽西使用嵌入式Jetty。根据会话,我有一些authfilter用于某些资源。
当我尝试测试我的应用程序时,JerseyTest加载我认为只有没有servlet的Jetty,因为注入了@Context HttpServletRequest httpRequest;一片空白。
任何想法如何改变可能在这里:
@Override
protected TestContainerFactory getTestContainerFactory() {
JettyTestContainerFactory j= new JettyTestContainerFactory();
return j;
}
或
@Override
protected Application configure() {
ResourceConfig r = new ResourceConfig();
r.packages("com.server.rest.jersey");
return r;
}
这里吗?
其他解决方案是在没有过滤器的情况下在测试中注册所有内容,但这不是一个好的集成测试..
另一个选择是使用泽西外部提供商,然后启动我的正常配置。这使得与生产代码的测试紧密耦合。
答案 0 :(得分:0)
对我目前的知识唯一可以做的是创建一个启动Jetty服务器的类,让Jersey配置外部提供程序,并在集成测试结束时关闭服务器。