Как имитировать HttpClient.send() с помощью MockitoJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как имитировать HttpClient.send() с помощью Mockito

Сообщение Anonymous »

У меня есть метод, отправляющий HTTPRequest:
public String myMethod(String url) throws IOException, InterruptedException, HttpTimeoutException {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("accept", "application/json")
.method("GET", HttpRequest.BodyPublishers.noBody())
.timeout(Duration.ofSeconds(3))
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());

return response.body();
}

Я пытаюсь имитировать метод send Чтобы создать тест для этого метода.
Я просто пока не нашел, как имитировать HttpClient.newHttpClient().
Это одна из версий для теста (не работает)
void checkGetEarningRulesByTypeReturnGoodValues() throws IOException, InterruptedException {
String expectedRes = "...";

HttpClient httpClient = mock(HttpClient.class);
HttpResponse httpResponse = mock(HttpResponse.class);
when(httpResponse.body()).thenReturn(expectedRes);
when(httpClient.send(any(), any())).thenReturn(httpResponse);
when(HttpClient.newHttpClient()).thenReturn(httpClient);

String res = MyClass.myMethod(url);

assertEquals(res, expectedRes);


Подробнее здесь: https://stackoverflow.com/questions/761 ... th-mockito
Ответить

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

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

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

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

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