特定の状況では500
というサーバーエラーで応答するRESTfulサービスの統合テストを作成しようとしていますが、問題を詳述するメッセージこのレスポンスボディを取得するためには、私のコードは、カスタムエラーハンドラを使用して、何かのように:MockRestServiceServerを使用したSpringのRestTemplateのテスト - エラーが500回あっても返されたボディの使用
@Test
public void testHealthyResponse() {
MockRestServiceServer mockServer = MockRestServiceServer.createServer(restTemplate);
mockServer.expect(requestTo("/someUri")).andExpect(method(HttpMethod.GET))
.andRespond(withSuccess(HEALTHY_RESPONSE, MediaType.APPLICATION_JSON));
restTemplate.setErrorHandler(new Allow500ResponseErrorHandler());
MyCustomResult result = restTemplate
.exchange("/someUri", HttpMethod.GET, null,
new ParameterizedTypeReference<MyCustomResult>() {
}).getBody();
// assertThat(... tests go here...);
mockServer.verify();
}
(:「健康」応答のための統合テストを行い、これは、正常に動作します
public class Allow500ResponseErrorHandler implements ResponseErrorHandler {
@Override
public boolean hasError(ClientHttpResponse response) throws IOException {
HttpStatus statusCode = response.getStatusCode();
return !HttpStatus.OK.equals(statusCode)
&& !HttpStatus.INTERNAL_SERVER_ERROR.equals(statusCode);
}
@Override
public void handleError(ClientHttpResponse response) throws IOException {
log.error("Unexpected response code: {} {}", response.getStatusCode(),
response.getStatusText());
}
}
しかし、私は「不健康」応答のための私の統合テストで同じエラーハンドラを設定した場合でも、私は
を取得する場合はもちろんのHEALTHY_RESPONSE
は、JSONの静的期待健全な反応である。)
を期待がある以外は0
org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class my.package.MyCustomResult] and content type [application/octet-stream]
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:110)
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:809)
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:793)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:572)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:530)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:476)
at [my test code]
セットアップは、上記のようなものである:
mockServer.expect(requestTo("/someUri")).andExpect(method(HttpMethod.GET))
.andRespond(withServerError().body(UNHEALTHY_RESPONSE));
(これは、使用しているばねウェブ4.1.7のRestTemplate
とスプリングテスト4.1.7のMockRestServiceServer
。)
どのように有用なボディを持つサーバエラー応答をシミュレートしますか?私は何が欠けていますか?