Статический макет 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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