为什么我的模拟不适用于 responseEntity 交换?

Why isnt my mocking not working for responseEntity exchange?

在 groovy 中,我正在尝试使用以下内容来模拟请求的 return,但每当我的代码调用时,我都会收到空指针异常:

ResponseEntity<AnimalVO> result = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(headerUtil.headers()), AnimalVO.class);

测试中:

  when(restTemplate.exchange(anyString(), any(HttpMethod.class, any(HttpEntity.class, any(ValueObject.class) as Class)).thenReturn(responseEntityMocked)

我正在使用 mockito 3.12 我的测试因空指针异常而失败,我的 restTemplate 交换(调试时)returns 是一个空值。 我做错了什么吗?

如果对休息寺交流有帮助,定义如下:

    exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType, Object... uriVariables)

对给定的 URI 模板执行 HTTP 方法,将给定的请求实体写入请求,return将响应作为 ResponseEntity。

尝试以下操作:

when(restTemplate.exchange(anyString(), any(HttpMethod.class), 
   any(HttpEntity.class), eq(AnimalVO.class)).thenReturn(responseEntityMocked)