次の方法で 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);
}
これは、私が求めているものを文字列で返します。以下は、実際の 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が返ってきました。
ありがとう!