我設計了一個web服務來在請求參數正常的情況下執行任務,或者返回401未授權的HTTP狀態碼,如果請求參數錯誤或爲空。Spring RestTemplate調用帶有錯誤的webservice並分析狀態代碼
我使用RestTemplate
執行測試,並且如果web服務成功響應,我能夠驗證HTTP 200 OK狀態。但是,我無法測試HTTP 401錯誤,因爲RestTemplate
本身會引發異常。
我的測試方法是
@Test
public void testUnauthorized()
{
Map<String, Object> params = new HashMap<String, Object>();
ResponseEntity response = restTemplate.postForEntity(url, params, Map.class);
Assert.assertEquals(HttpStatus.UNAUTHORIZED, response.getStatusCode());
Assert.assertNotNull(response.getBody());
}
異常日誌
org.springframework.web.client.HttpClientErrorException: 401 Unauthorized
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:88)
at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:533)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:489)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:447)
at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:318)
如何,如果Web服務使用HTTP狀態碼401回覆我可以測試?
難道我的回答對你的工作? – nilesh 2014-09-02 13:48:14