Я тестирую глагол DELETE следующим образом, который, кажется, работает просто отлично.Jersey Restful Testing with Junit
@Test
public void testDelete() throws Exception {
WebResource webResourceTest = webResource.path("/deletesomestuff/delete").queryParam("FT","From Test");
final String responseString = webResourceTest.type(MediaType.TEXT_PLAIN).delete(String.class);
Assert.assertEquals("Request fulfilled.", responseString);
}
Это возвращает то, что я получил в строке. Вот фрагмент фактического вызова DELETE API.
@DELETE
@Path("/delete")
@Produces(MediaType.TEXT_PLAIN)
public Response delete(@PathParam("/delete") String deleteString) {
<snip>
return Response.status(204).entity("Request fulfilled.").build();
}
Звонок DELETE также отлично работает и возвращает правильную строку, но мой вопрос в этом. Как получить статус ответа, возвращенный через WebResource? Я просто не могу найти способ получить это. Тест работает как есть, но мне просто интересно узнать, возможно ли вытащить ответ из WebResource. Теперь, когда я использую ClientResponse из моего JUnit теста я всегда получать 200.
Я также протестировали УДАЛИТЬ вызов API с завитком:
curl -i -X DELETE /webapi/deletesomestuff/delete?FT=From+Test
HTTP/1.1 204 No Content
Server: Apache-Coyote/1.1
Content-Type: text/plain
Date: Mon, 08 Jul 2013 18:11:13 GMT
204 был возвращен.
Спасибо!
Я не могу поверить, что я пропустил с помощью ClientResponse !!! Спасибо, ritesh. – cbohannon
Это возвращает ответ, но возвращает 200, а не 204. Я сделаю еще несколько исследований. – cbohannon
Справа. Это что-то в тесте, потому что, когда я выполняю завиток, я возвращаю 204. Я собираюсь обновить исходный вопрос. – cbohannon