我尝试使用Jersey - JerseyTest -framework-provider-Grizzly2在jersey REST Servlet上创建一个测试。
测试从grizzly中的servlet请求正确的内容。
但是,当启动servlet时,会产生一个HTTPBasicAuth。身份验证是通过@WebFilter("/*") org.apache.shiro.web.servlet.ShiroFilter完成的。
在JerseyTest期间,没有请求身份验证。所以我的结论是@WebFilter注解是无法识别的。JerseyTest是否仅测试应用程序中的资源?如何让WebFilters被识别?
谢谢。
发布于 2014-10-11 21:12:21
我想我可以回答我自己;-)
它是一个JerseyTest框架,没有"FullAppWithJerseyTest“框架。
我现在已经实现了类似于ServletJerseyTest扩展JerseyTest的东西。它使用org.glassfish.jersey.test.external.ExternalTestContainerFactory.class和setUp(),其中包含启动servlet容器和安装最新构建的WAR。
测试针对此容器运行。在tearDown()中,容器被停止,已安装的WAR被删除。
Embedded Tomcat有自己的应用程序接口来寻找空闲的TCP端口,并且TestProperties.CONTAINER_PORT被设置为选择端口。
现在测试按预期运行...
https://stackoverflow.com/questions/26308640
复制相似问题