如何使用最新的Jersey测试框架升级Jersey1.18到2.x版本和单元测试Web服务

时间:2015-02-11 15:58:57

标签: java api unit-testing rest jersey

我是单位测试Rest Webservices的新手。 在我们的项目中,我正在尝试使用Jersey测试框架为Rest Services编写一个简单的UT。我已将Jersey(1.18.1)升级到最新版本(2.3.15),取代以下罐子并使用最新版本的Jersey Test Frameworks。

enter image description here

我能够处理除此之外的几乎所有依赖项。当我尝试运行测试用例时,我遇到以下异常: enter image description here

有人能告诉我我缺少的东西吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我强烈建议使用Maven。您需要添加的是

<dependency>
    <groupId>org.glassfish.jersey.test-framework.providers</groupId>
    <artifactId>jersey-test-framework-provider-grizzly2</artifactId>
    <version>2.3.1</version>
</dependency>

它将拉入所有必需的罐子

enter image description here

public class SimpleJerseyTest extends JerseyTest {

    @Path("/hello")
    public static class HelloResource {
        @GET
        public String getHello() {
            return "Hello World";
        }
    }

    @Override
    public Application configure() {
        return new ResourceConfig(HelloResource.class);
    }

    @Test
    public void test() {
        String response = target("hello").request().get(String.class);
        Assert.assertEquals("Hello World", response);
    }
}

顺便说一句,2.3.1不是最新版本,泽西岛刚刚发布2.16。依赖关系将与您在上面看到的有所不同。

一些资源:

以上仅用于基本支持。如果您需要JSON支持,则需要更多jar。或者使用Maven

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>${jersey.version}</version>
</dependency>

对于多部件支持,您还需要更多的罐子。使用Maven

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-multipart</artifactId>
    <version>${jersey.version}</version>
</dependency>

这两种依赖需要的不仅仅是一个罐子。以下是上述三个Maven依赖项组合的所有jar的图像,如果需要手动获取它们。虽然我强烈建议使用/学习Maven。它会让生活变得更加轻松。

enter image description here