Я пишу тесты для моего приложения весенней загрузки. При написании тестов для ответов об ошибках я заметил, что клиент TestRestTemplate генерирует исключение синтаксического анализа (это ответ об ошибке, поэтому формат отличается от стандартного ответа) для следующего теста:
@Test
fun `post should return 404 if object does not exists`() {
// expect
restTemplate.exchange(
localUrl("/api/v1/data/not_exists/"),
HttpMethod.POST,
RequestClass(data = randomString()),
ResponseClass::class.java
)
}
org.springframework.web.client.RestClientException: Error while extracting response for type
Согласно весенней документации HttpClientErrorException
ошибка должна быть выброшена. https://docs.spring.io/spring/docs/3.0.6.RELEASE_to_3.1.0.BUILD-SNAPSHOT/3.0.6.RELEASE/org/springframework/web/client/HttpClientErrorException.html
Существует некрасивое решение, в котором я не могу установить тип ответа на Nothing
, но содержимое ответа об ошибке будет потеряно.
restTemplate.exchange(
localUrl("/api/v1/data/not_exists/"),
HttpMethod.POST,
RequestClass(data = randomString()),
Nothing::class.java
)
Возможно ли сделать TestRestTemplate
/ RestTemplate
для выдачи фактического HttpClientErrorException
вместо сбоя при разборе ответа?