Статический макет WebClient не работает во второй раз, когда он вызывается в тестеJAVA

Программисты JAVA общаются здесь
Anonymous
Статический макет WebClient не работает во второй раз, когда он вызывается в тесте

Сообщение Anonymous »

У меня есть следующий статический макет:

Код: Выделить всё

 try (MockedStatic webClientStatic = Mockito.mockStatic(WebClient.class)) {
webClientStatic.when(WebClient::builder).thenReturn(webClientBuilder);
webClientStatic.when(WebClient::builder).thenReturn(webClientBuilder);
when(webClientBuilder.clientConnector(Mockito.any(ReactorClientHttpConnector.class))).thenReturn(webClientBuilder);
when(webClientBuilder.baseUrl(anyString())).thenReturn(webClientBuilder);
when(webClientBuilder.build()).thenReturn(webClient);

when(webClient.post()).thenReturn(requestBodyUriSpec);
when(requestBodyUriSpec.header(anyString(), anyString())).thenReturn(requestBodySpec);
when(requestHeadersSpec.retrieve()).thenReturn(responseSpec);
when(requestBodySpec.retrieve()).thenReturn(responseSpec);
when(responseSpec.bodyToMono(ZoomAccessToken.class)).thenReturn(Mono.just(zoomAccessToken));
}
Это сработало, когда webClient.post() или webClientBuilder.build() вызывается один раз, но у меня есть метод, в котором webClient.post() и

Код: Выделить всё

webClientBuilder.build()
вызываются во второй раз, во второй раз я получаю не имитируемый объект, а реальный экземпляр webClient, и я получаю такие ошибки, как 401 Unauthorized from POST, вы знаете, как можно ли это исправить или почему второй раз статический макет не работает? Спасибо!!

Подробнее здесь: https://stackoverflow.com/questions/787 ... -in-a-test

Вернуться в «JAVA»