Встречается на собеседованиях • сегодня
Как протестировать базу данных
Для тестирования базы данных в Java можно использовать несколько подходов:
- Интеграционные тесты с тестовой БД (H2, SQLite) или контейнерами (Testcontainers):
java
@Testcontainers
class UserRepositoryTest {
@Container
static PostgreSQLContainer<?> postgres = new PostgreSQLContainer<>("postgres:15");
@Test
void shouldSaveUser() {
// Настройка DataSource с postgres.getJdbcUrl()
UserRepository repo = new UserRepository(dataSource);
User user = new User("test");
repo.save(user);
assertNotNull(repo.findById(user.getId()));
}
}- Мокирование DAO/репозиториев (Mockito):
java
@Mock UserDao userDao;
@Test
void testFindUser() {
when(userDao.findById(1L)).thenReturn(new User(1L, "John"));
// Тестируем сервис, использующий userDao
}- In-memory БД для быстрых тестов:
java
@BeforeEach
void setup() {
DataSource ds = new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.H2)
.addScript("schema.sql")
.build();
repository = new UserRepository(ds);
}Ключевые моменты:
- Изолируйте тесты (rollback транзакций)
- Используйте фикстуры для начальных данных
- Проверяйте не только успешные сценарии, но и ошибки
- Для сложных запросов проверяйте сгенерированный SQL

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