Встречается на собеседованиях • сегодня
Как замокать клиент при тестировании
Для мокинга 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-приложений.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы