Ответ
Для интеграционного тестирования в Java-экосистеме применяется комбинация инструментов:
| Инструмент | Назначение |
|---|---|
| JUnit 5 / TestNG | Базовый движок для написания тестов. |
Spring Boot Test (@SpringBootTest) |
Поднятие тестового контекста Spring. |
| REST Assured | Удобное тестирование REST API. |
| Testcontainers | Запуск реальных зависимостей (БД, Kafka) в Docker-контейнерах. |
| WireMock | Мокирование внешних HTTP-сервисов. |
| DBUnit / Liquibase | Управление тестовыми данными в БД. |
Пример интеграционного теста для Spring Boot REST-контроллера:
@SpringBootTest
@AutoConfigureMockMvc
class UserControllerIntegrationTest {
@Autowired
private MockMvc mockMvc;
@Test
void getUser_ShouldReturnUser_WhenUserExists() throws Exception {
mockMvc.perform(get("/api/users/{id}", 1L)
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(jsonPath("$.id").value(1));
}
}
Такой стек позволяет тестировать приложение в условиях, близких к production.