[英]Jersey Unit Test: in memory container vs grizzly
我正试图在泽西岛进行单元测试。
不依赖于Jersey的类可以使用标准JUnit进行单元测试。 这个还可以。
但是还有Jersey(或者,我应该说是JAX-RS?)依赖类。 为了测试这些(注释的正确性,序列化,状态代码等),Jersey提供了包含基础JerseyTest
类的“测试框架”。
这也很好,也可以理解。
然而,官方文档指定了几种类型的受支持容器,其中可以执行JerseyTest
子类。
看起来这些容器可以分为两种类型:
从我目前的(新手)角度来看,所有类型#1容器都提供相同的功能。 因此,让我们把Grizzly作为#1代表。
现在,很明显内存容器(根本不是真正的容器)比Grizzly快。 因此,我想使用这个容器来测试Jersey依赖类。 但官方文件中的这一陈述让我感到困惑:
此容器不支持servlet和其他容器相关的功能,但它是简单单元测试的完美选择。
我试图谷歌比较内存容器与Grizzly,但没有找到任何明确的比较。 我也读过这个技术性很强的帖子 ,但内存容器的缺点仍然不明确。
在这方面,我有两个问题:
谢谢
什么是“servlet和其他容器依赖功能”(不需要全面的列表,只是一般描述)?
假设您需要在资源中使用HttpServletRequest
, ServletContext
等。 或者,如果您正在使用影响Jersey应用程序的serlvet过滤器或侦听器。 这些是servlet功能。
其他“容器功能”仅表示您在生产中使用的特定于该容器的任何其他功能。 例如,使用Grizzly,您可以注入Grizzly特定的Request
对象。
如果我选择内存容器,那么我是否可以遇到通过测试的代码情况,但是在生产中失败(我会在生产中使用Tomcat,如果这很重要)?
主要是如果你使用上面提到的项目。
请参阅需要servlet环境的示例 。 这里有一个Servlet过滤器用于安全性。 因此需要在测试中配置过滤器。 另一个需要HttpServletRequest的例子
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.