2

根据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 的容器

我有以下问题:

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

更新

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

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

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

4

1 回答 1

1

“……你真的能在这些限制下测试任何有意义的东西吗……”

您可以测试您的业务逻辑,并且做得更快。

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

于 2012-12-21T15:43:10.113 回答