球衣测试框架文档不起作用

时间:2015-10-23 12:28:39

标签: java rest jersey-test-framework

尝试建立一个hello world jersey测试。 https://jersey.java.net/documentation/2.5.1/test-framework.html使它看起来如此简单,但是当按照文档记录覆盖配置方法时,它不起作用。

来自文档

package api;

import static org.junit.Assert.assertEquals;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Application;

import org.junit.Test;

import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.core.ResourceConfig;
import com.sun.jersey.test.framework.JerseyTest;
import com.sun.jersey.test.framework.WebAppDescriptor;

public class JerseyTester extends JerseyTest {

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


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

@Test
public void testHelloWorld() {
    WebResource webResource = resource();
    String responseMsg = webResource.path("helloworld").get(String.class);
    assertEquals("Hello World", responseMsg);
}

}

问题是配置方法覆盖不起作用 - 我收到错误:"返回类型与JerseyTest.configure()"不兼容。我也得到错误:"无法实例化类型ResourceConfig" - 当文档明确说明实例化它时,怎么可能呢?!

这是如此基本我不知道为什么它不起作用。我正试图让一个简单的jersey球衣端点接受测试。

这是我的依赖:

dependencies {
compile 'javax.ws.rs:jsr311-api:1.1.1'

compile 'com.sun.jersey:jersey-server:1.19'
compile 'com.sun.jersey:jersey-core:1.19'
compile 'com.sun.jersey:jersey-client:1.19'
compile 'com.sun.jersey:jersey-servlet:1.19'
compile 'com.sun.jersey:jersey-json:1.19'

compile 'com.yammer.metrics:metrics-core:2.2.0'
compile 'com.yammer.metrics:metrics-servlet:2.2.0'
compile 'com.yammer.metrics:metrics-jersey:2.2.0'
compile 'com.yammer.metrics:metrics-graphite:2.2.0'

compile 'log4j:log4j:1.2.16'

testCompile 'junit:junit-dep:4.10'
testCompile 'com.sun.jersey.jersey-test-framework:jersey-test-framework-grizzly2:1.19'
testCompile 'org.slf4j:slf4j-simple:1.6.1'
}

1 个答案:

答案 0 :(得分:0)

是的,您正在查看错误的文档。您正在查看的文档适用于Jersey 2.x.但是你正在使用Jersey 1.x.您可以查看1.x的文档,但那里没有太多内容。最好的办法是查看source code tests的示例。您还可以在this answer

的底部看到另一个示例