Я использую Apache Wink 1.2.1. Я бы хотел, чтобы модуль тестировал мою службу REST, и я предпочел бы сделать это, не используя RestClient. Я не нашел никакого примера, но после долгих поисков я догадался, что MockServletInvocationTest был правильной отправной точкой ... однако я не смог заставить его работать.Единичное тестирование Apache Wink Служба REST с помощью MockServletInvocationTest
Вот минимальный пример, который не подходит для меня.
Моя служба REST:
@Path("greetings")
public class GreetingsResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return "Hello World!";
}
}
Соответствующий тест блок:
public class GreetingsResourceTest extends MockServletInvocationTest {
@Override
protected Class<?>[] getClasses() {
return new Class<?>[] { GreetingsResource.class };
}
public void testHello() throws ServletException, IOException {
MockHttpServletRequest request = MockRequestConstructor.
constructMockRequest("GET", "/greetings", MediaType.TEXT_PLAIN);
MockHttpServletResponse response = invoke(request);
assertEquals(200, response.getStatus());
}
}
Итак, у меня есть несколько вопросов:
Собираюсь ли я в неправильном направлении ?
Если я пойду в правильном направлении, то что я делаю неправильно? При выполнении предыдущего тестового случая я получаю следующее сообщение об ошибке (который я действительно не понимаю):
java.lang.NoSuchMethodError: javax/servlet/http/HttpServletResponse.getContentType()Ljava/lang/String; at org.apache.wink.server.internal.handlers.FlushResultHandler$FlushHeadersOutputStream.flushHeaders(FlushResultHandler.java:350) ~[wink-server-1.2.1-incubating.jar:1.2.1-incubating]
Как вы выяснили ошибку зависимостей? 'maven tree'? –
@bubuzzz: Я, честно говоря, не помню, как я это понял :) ... Наверное, потому что я был в отчаянии, и начал изучать все дерево зависимостей Maven. – MarcoS