2016-06-24 8 views
0

я запустить сервер от терминала с помощью команды 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; 

} 

ответ

0

Он должен только начинать сам. Но для тестирования вы, вероятно, захотите контролировать, когда он начнется. Вы можете пройти false как third argument to the server factory method. Таким образом вы будете контролировать, когда он начнется.

Вы можете позвонить start и stop на примере HttpServer в ваших методах до и после вашего теста. Вам также нужно будет обновить код в классе Main, чтобы позвонить start().

Возможно, вы также захотите зарегистрироваться Jersey Test Framework. Здесь вам не нужно запускать и останавливать любые серверы. Рамка будет обрабатывать его для вас. Это также делает ваши тесты более настраиваемыми, чем ваша текущая настройка. Скажем, вам нужен только один зарегистрированный ресурс или вы хотите добавить некоторые услуги mocks. Лично я бы пошел с тестовой картой.

Смежные вопросы