不同的泽西岛测试容器有什么区别?

时间:2012-11-08 06:15:40

标签: unit-testing jersey

根据http://jersey.java.net/nonav/apidocs/latest/jersey/jersey-test-framework/jersey-test-framework-core/com/sun/jersey/test/framework/JerseyTest.html,用户可以选择两种测试容器:

  1. 不支持servlet的低级容器
  2. 支持servlet的基于Web的容器
  3. 我有以下问题:

    1. 每种容器的优点/缺点是什么?例如,我认为低级容器更快但缺少某种功能。
    2. 低级容器不支持servlet这是什么意思?我认为JAX-RS基于Servlets。什么不是低级容器能够做到的?
    3. 更新

      经过进一步研究,我发现低级容器更快,但它们确实在没有servlet的情况下运行。当客户端发出请求时,将构造相应的资源,并将响应传递回客户端,所有内存都在内存中。这类似于运行嵌入式数据库而不是传统的基于网络的JDBC连接。

      没有提供ServletContextListener,注册servlet或过滤器的机制。我猜测也不支持请求范围。

      我的问题是,你真的可以在这些限制下测试任何有意义的东西吗?

1 个答案:

答案 0 :(得分:1)

“......你真的可以在这些限制下测试任何有意义的东西......”

您可以测试您的业务逻辑,并更快地完成。

(希望看到这个修复:JERSEY-622。内存测试容器不支持Jackson,即泽西岛的POJO映射功能。)