我设计了一个 Web 服务,如果请求参数正常,则执行任务,如果请求参数错误或为空,则返回 401 Unauthorized HTTP 状态代码。
我正在使用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?