Встречается на собеседованиях • сегодня

Как замокать клиент при тестировании

Для мокинга HTTP-клиента в тестах можно использовать библиотеку MockWebServer (OkHttp) или MockRestServiceServer (Spring). **Пример с MockWebServer:** ```java @Test void testHttpClient() throws IOException { MockWebServer server = new MockWebServer(); server.enqueue(new MockResponse().setBody("{\"name\":\"test\"}")); server.start(); HttpClient client = HttpClient.newBuilder().build(); HttpRequest request = HttpRequest.newBuilder() .uri(server.url("/test").uri()) .build(); HttpResponse response = client.send(request, BodyHandlers.ofString()); assertEquals("{\"name\":\"test\"}", response.body()); server.shutdown(); } ``` **Для Spring (MockRestServiceServer):** ```java @Autowired private RestTemplate restTemplate; private MockRestServiceServer mockServer; @BeforeEach void setup() { mockServer = MockRestServiceServer.createServer(restTemplate); } @Test void testRestTemplate() { mockServer.expect(requestTo("/test")) .andRespond(withSuccess("{\"name\":\"test\"}", MediaType.APPLICATION_JSON)); String result = restTemplate.getForObject("/test", String.class); assertEquals("{\"name\":\"test\"}", result); } ``` Выбор зависит от используемого HTTP-клиента. MockWebServer универсален, а MockRestServiceServer удобен для Spring-приложений.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы