没有 HTTP 服务器的 Jersey 单元测试

Jersey Unit Tests without HTTP Server

我想设置一个非常轻量级的球衣单元测试。我的网络服务产生 JSON 结果,我想在不使用 HTTP 服务器的情况下直接验证。是否可以在不使用像 Grizzly HTTP 这样的 HTTP 服务器的情况下创建轻量级 jsersey 测试?

只要看看 Jersey Test Framework。您可以以一种简单的方式为您的 Web 服务创建测试。如果你真的需要严格的单元测试,你应该只创建一个资源实例 class,模拟任何依赖项并做一些断言。显示示例代码。

不确定您使用的是哪个版本的 Jersey,但请查看 Jersey 测试框架。有一个内存容器,不涉及任何网络连接。这是一个文档

您可以在项目源代码测试中看到一些不同的例子

依赖关系

  • 球衣 2.x

    <dependency>
        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
        <artifactId>jersey-test-framework-provider-inmemory</artifactId>
        <version>${jersey2.version}</version>
    </dependency>
    
  • 球衣 1.x

    <dependency>
        <groupId>com.sun.jersey.jersey-test-framework</groupId>
        <artifactId>jersey-test-framework-inmemory</artifactId>
        <version>${jersey1.version}</version>
    </dependency>
    

唯一的缺点是,如果您对某些特定的 Servlet 功能有任何依赖,您可能无法在此处获得它。