Модульное тестирование с помощью RestClient – ​​Spring bootJAVA

Программисты JAVA общаются здесь
Anonymous
Модульное тестирование с помощью RestClient – ​​Spring boot

Сообщение Anonymous »

Я хотел бы добавить модульные тесты для HTTP-вызова, используя RestClient
Я немного прочитал и, похоже, могу использовать @RestClientTest но это, похоже, для интеграционных тестов (он запускает сервер).
https://www.baeldung.com/restclienttest-in-spring-boot
С помощью restTemplate я могу это сделать.

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

@Mock
private RestTemplate restTemplate;

private void setRestTemplateResponse(MyResponse response) {
given(restTemplate.getForObject(
"my-endpoint", MyRespose.class
)).willReturn(response);
}
Поэтому я искал аналогичный способ сделать это. Попробовал это, но получил исключение NullPointerException, потому что restClient.get() — это метод, полученный из интерфейса

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

@Mock
private RestClient restClient;

private void setRestTemplateResponse(MyResponse response) {
given(restClient.get().uri("my-endpoint"
).retrieve().body(MyResponse.class)).willReturn(response);
}
РЕДАКТИРОВАНИЕ №1
Добавлено:

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

@Autowired
private RestClient restClient;
@BeforeEach
void setup() {
this.restClient = RestClient.builder().build();
adapter = new MyServiceImpl(BASE_URL, restClient);
}
Я не получаю исключения, но теперь он фактически отправляет запрос к конечной точке, который, очевидно, завершается неудачей.

Подробнее здесь: https://stackoverflow.com/questions/780 ... pring-boot

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