使用Junit进行泽西休息测试

时间:2013-07-08 16:51:50

标签: java junit jersey webresponse

我正在以下列方式测试DELETE动词,这似乎工作得很好。

@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);
}

这将返回我在String中的内容。以下是实际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中提取响应。现在当我从junit测试中使用ClientResponse时,我总是收到200。

我还使用curl测试了DELETE 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。

谢谢!

1 个答案:

答案 0 :(得分:2)

我想这应该有效:

ClientResponse response = webResourceTest.type(MediaType.TEXT_PLAIN).delete(ClientResponse.class);
Assert.assertEquals(204, response.getStatus());