Mockito BDD - 模拟 RestRemplate exchange() 方法
Mockito BDD - mocking RestRemplate exchange() method
我正在尝试使用以下代码模拟 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)
我应该如何更改签名才能使其正常工作?谢谢
查看 docs 交换方法。我没有看到任何在参数中使用 UriComponents
的方法。
作为交换方法的第一个参数,您需要使用 String
、 URI
或 RequestEntity
exchange
(url) 的第一个参数应该是 eq("url")
或 anyString()
(假设 "url" 是您在你的测试)。
第 4 个参数(响应 class)应为 eq(StatusResponse.class)
或 any(Class.class)
。
我正在尝试使用以下代码模拟 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)
我应该如何更改签名才能使其正常工作?谢谢
查看 docs 交换方法。我没有看到任何在参数中使用 UriComponents
的方法。
作为交换方法的第一个参数,您需要使用 String
、 URI
或 RequestEntity
exchange
(url) 的第一个参数应该是 eq("url")
或 anyString()
(假设 "url" 是您在你的测试)。
第 4 个参数(响应 class)应为 eq(StatusResponse.class)
或 any(Class.class)
。