我正在尝试使用以下代码来模拟RestTemplate exchange()调用:
测试方法
given(restTemplate.exchange(any(UriComponents.class), any(HttpMethod.class), any(HttpEntity.class), any(StatusResponse.class)))
.willReturn(new ResponseEntity<>(HttpStatus.BAD_GATEWAY));
由于以下原因,代码无法编译
:cannot resolve method willReturn(new ResponseEntity<>(HttpStatus.BAD_GATEWAY))
cannot resolve method exchange(T, T, T, T)
我应该如何更改签名以使其起作用?谢谢。
答案 0 :(得分:1)
看看docs的交换方法。我没有看到在参数中使用UriComponents
的任何方法。
作为交换方法的第一个参数,您需要使用String
,URI
或RequestEntity
答案 1 :(得分:0)
exchange
(url)的第一个参数应为eq("url")
或anyString()
(假设“ url”是您在测试中使用的值)。
第四个参数(响应类)应为eq(StatusResponse.class)
或any(Class.class)
。