Jersey测试框架给出空指针异常



我有一个Jersey Rest资源,我想使用Jersey测试框架创建一个集成测试。我决定从这里遵循指南(https://jersey.java.net/documentation/latest/test-framework.html),所以我创建了以下集成测试

public class MyResourceIT extends JerseyTest {
public MyResourceIT() {
}
@Path("hello")
public static class HelloResource {
    @GET
    public String getHello() {
        return "Hello World!";
    }
}
@Override
protected Application configure() {
    System.out.println("Configure was executed");
    return new ResourceConfig(HelloResource.class);
}
@Test
public void testGetIt() {
    System.out.println("getIt");
    final String hello = target("hello").request().get(String.class);
    assertEquals("Hello World!", hello);
}
}

作为一个容器,我使用Jetty,但问题是,当我运行测试时,我得到以下错误:

-------------------------------------------------------------------------------
Test set: com.example.jerseywebapp.MyResourceIT
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.305 sec <<< FAILURE! - in com.example.jerseywebapp.MyResourceIT
testGetIt(com.example.jerseywebapp.MyResourceIT)  Time elapsed: 0.169 sec  <<< ERROR!
java.lang.NullPointerException: null
    at org.glassfish.jersey.test.JerseyTest.target(JerseyTest.java:566)
    at org.glassfish.jersey.test.JerseyTest.target(JerseyTest.java:580)
    at com.example.jerseywebapp.MyResourceIT.testGetIt(MyResourceIT.java:68)

知道为什么会这样吗?

我有类似的问题,但在我的情况下,它发生了,因为我的测试类覆盖setUp()方法,使用JerseyTest类初始化其上下文

我已经添加了下面的依赖项并运行您的测试。它的工作原理。您尝试过这种依赖关系吗?

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

我终于解决了它,问题是我使用了maven 1。X代表其他,maven 2。

最新更新