Mockito BDD-模拟RestRemplate exchange()方法

时间:2019-03-26 12:25:30

标签: spring mockito bdd resttemplate

我正在尝试使用以下代码来模拟RestTemplate exchange()调用:

测试方法

given(restTemplate.exchange(any(UriComponents.class), any(HttpMethod.class), any(HttpEntity.class), any(StatusResponse.class)))
            .willReturn(new ResponseEntity<>(HttpStatus.BAD_GATEWAY));

由于以下原因,代码无法编译

  1. 它抱怨cannot resolve method willReturn(new ResponseEntity<>(HttpStatus.BAD_GATEWAY))
  2. 它抱怨cannot resolve method exchange(T, T, T, T)

我应该如何更改签名以使其起作用?谢谢。

2 个答案:

答案 0 :(得分:1)

看看docs的交换方法。我没有看到在参数中使用UriComponents的任何方法。

作为交换方法的第一个参数,您需要使用StringURIRequestEntity

答案 1 :(得分:0)

exchange(url)的第一个参数应为eq("url")anyString()(假设“ url”是您在测试中使用的值)。

第四个参数(响应类)应为eq(StatusResponse.class)any(Class.class)