gpt4 book ai didi

java - 在 Spring v1.5.14.RELEASE 中模拟返回 List 的 RestTemplate

转载 作者:行者123 更新时间:2023-12-02 01:39:38 30 4
gpt4 key购买 nike

我有一个要模拟的 RestTemplate

ResponseEntity<List<Hotel>> deliveryResponse =
restTemplate.exchange(link.getHref(),
HttpMethod.GET, null, new ParameterizedTypeReference<List<Hotel>>() {
});

但不知道是否可行。我试过了

when(restTemplate.exchange(eq("delivery"), eq(HttpMethod.GET), any(RequestEntity.class), eq(Object.class)))
.thenReturn(new ResponseEntity<>(new ParameterizedTypeReference<List<Hotel>>(), HttpStatus.OK));

最佳答案

any(Class)

Matches any object of given type, excluding nulls.

<小时/>

any()

Matches anything, including nulls and varargs.

<小时/>

因此,正如前面所建议的,将您的测试代码更改为以下内容将解决您的问题。

由于 ParameterizedTypeReference 无法实例化,因为它是一个抽象类,因此您可以返回一个模拟并在其上定义所需的行为。

List<Hotel> hotels = new ArrayList<>();

ResponseEntity response = Mockito.mock(ResponseEntity.class);
Mockito.when(response.getStatusCode()).thenReturn(HttpStatus.OK);
Mockito.when(response.getBody()).thenReturn(hotels);

when(restTemplate.exchange(eq("delivery"), eq(HttpMethod.GET), any(), eq(Object.class)))
.thenReturn(response);

关于java - 在 Spring v1.5.14.RELEASE 中模拟返回 List 的 RestTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57496339/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com