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

Какой опыт с testcontainers

Testcontainers — это библиотека для Java, позволяющая легко создавать и управлять временными контейнерами (Docker) в тестах. Часто используется для интеграционного тестирования с БД, Kafka, Redis и другими сервисами.

Пример с PostgreSQL:

java
@Testcontainers
public class UserRepositoryTest {
    @Container
    private static final PostgreSQLContainer<?> postgres = 
        new PostgreSQLContainer<>("postgres:15-alpine");
text
@BeforeAll
static void setup() {
    // Подключение к контейнеру
    String jdbcUrl = postgres.getJdbcUrl();
    String username = postgres.getUsername();
    String password = postgres.getPassword();
    // Инициализация DataSource/JPA...
}

@Test
void testSaveUser() {
    // Тест с реальной БД в контейнере
}

}

text

**Плюсы:**  
- Изоляция тестов (чистые контейнеры на каждый запуск).  
- Не требует ручного развертывания инфраструктуры.  
- Поддержка JUnit 5 через аннотации (`@Testcontainers`, `@Container`).  

**Минусы:**  
- Зависит от Docker (не подходит для CI без Docker).  
- Медленнее, чем in-memory DB (например, H2).  

Использую для тестирования Spring Boot-приложений с реальными зависимостями (БД, Kafka).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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