用依赖于jar的平针织物为灰熊服装编写测试

时间:2016-06-24 05:38:05

标签: java intellij-idea server jersey grizzly

我通过java -jar target/test-service-1.0-jar-with-dependencies.jar命令

从终端启动服务器

然而,当从Intellij Idea运行测试时,我无法弄清楚如何启动服务器..

这是当前的代码,不起作用

private HttpServer server;
private WebTarget target;

@Before
public void setUp() throws Exception {
    // start the server
    server = Main.startServer();
    // create the client
    Client c = ClientBuilder.newBuilder().register(JacksonFeature.class).build();
    // uncomment the following line if you want to enable
    // support for JSON in the client (you also have to uncomment
    // dependency on jersey-media-json module in pom.xml and Main.startServer())
    // --
    // c.configuration().enable(new org.glassfish.jersey.media.json.JsonJaxbFeature());

    target = c.target(Main.BASE_URI);
}

这是我的startServer代码

public static HttpServer startServer() {
        // create a resource config that scans for JAX-RS resources and providers

    ResourceConfig rc = new ResourceConfig().packages("com.test.service").register(JacksonFeature.class);
    EncodingFilter.enableFor(rc, GZipEncoder.class);
    rc.register(LoggingFilter.class);
    rc.register(MultiPartFeature.class);
    rc.register(CORSResponseFilter.class);
   // rc.property("config", configParams);
    // create and start a new instance of grizzly http server
    // exposing the Jersey application at BASE_URI
    HttpServer httpServer = GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), rc);
    //httpServer.getServerConfiguration().addHttpHandler(shh);
    return httpServer;

}

1 个答案:

答案 0 :(得分:0)

它应该自己开始。但是对于测试,你可能想控制它什么时候开始。您可以将false作为third argument to the server factory method传递。这样你就可以控制什么时候开始。

您可以在测试前后方法中的start实例上调用stopHttpServer。您还需要更新Main课程中的代码,以致电start()

您可能还想查看Jersey Test Framework。在这里,您不需要启动和停止任何服务器。框架将为您处理它。它还使您的测试比您当前的设置更具可配置性。假设您只想要注册一个资源,或者您想要注入一些模拟服务。就个人而言,我会选择测试框架。