Найти в Дзене
Java

Spring Boot Tip: тестируем REST проще с `RestTestClient

` 🚀 В Spring Boot можно легко писать интеграционные тесты для REST-эндпоинтов, используя `RestTestClient` вместе с аннотацией: @AutoConfigureRestTestClient Это автоматически настраивает клиент и позволяет: - отправлять запросы прямо из тестов - проверять статус и тело ответа - работать с объектами, а не “сырым” JSON Пример Копировать код @SpringBootTest @AutoConfigureRestTestClient public class PersonControllerTests { private static final String API_PATH = "/persons"; @Test void add(@Autowired RestTestClient restTestClient) { restTestClient.post().uri(API_PATH) .body(Instancio.create(Person.class)) .exchange() .expectStatus().is2xxSuccessful() .expectBody(Person.class) .value(person -> assertNotNull(person.getId())); } } 👉 Для TestRestTemplate есть похожая аннотация: @AutoConfigureTestRestTemplate Тесты становятся чище, короче и ближе к реальному поведению API ✨ @javarush

Spring Boot Tip: тестируем REST проще с `RestTestClient` 🚀

В Spring Boot можно легко писать интеграционные тесты для REST-эндпоинтов,

используя `RestTestClient` вместе с аннотацией:

@AutoConfigureRestTestClient

Это автоматически настраивает клиент и позволяет:

- отправлять запросы прямо из тестов

- проверять статус и тело ответа

- работать с объектами, а не “сырым” JSON

Пример

Копировать код

@SpringBootTest

@AutoConfigureRestTestClient

public class PersonControllerTests {

private static final String API_PATH = "/persons";

@Test

void add(@Autowired RestTestClient restTestClient) {

restTestClient.post().uri(API_PATH)

.body(Instancio.create(Person.class))

.exchange()

.expectStatus().is2xxSuccessful()

.expectBody(Person.class)

.value(person -> assertNotNull(person.getId()));

}

}

👉 Для TestRestTemplate есть похожая аннотация:

@AutoConfigureTestRestTemplate

Тесты становятся чище, короче и ближе к реальному поведению API ✨

@javarush