Spring TestRestTemplate解析错误,而不是抛出HttpClientErrorException

时间:2019-10-02 10:42:51

标签: java spring spring-boot kotlin

我正在为自己的Spring Boot应用程序编写测试。 为错误响应编写测试时,我注意到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

应根据Spring文档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而不是解析响应失败?

0 个答案:

没有答案