2013-07-08 73 views
0

我正在測試一個DELETE動詞以下面的方式,似乎工作得很好。澤西寧靜測試與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

我還測試了捲曲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。

謝謝!

回答

2

我想這應該工作:

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

我無法相信我錯過了使用ClientResponse!感謝ritesh。 – cbohannon

+0

這確實會返回一個響應,但它會返回一個200而不是204.我會做更多的研究。 – cbohannon

+0

對。這是在測試中的東西,因爲當我執行卷曲時,我得到一個204返回。我將更新原來的問題。 – cbohannon