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

Что делать если нет возможности локально устанавливать базу данных для использования ее с Unit-тестами

Используй in-memory базы данных, такие как H2 или SQLite. Они работают в оперативной памяти, не требуют установки и легко интегрируются с тестами.

Пример с H2 и JUnit:

java
@Test
public void testDatabaseOperations() {
    // Настройка подключения к H2
    String jdbcUrl = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1";
    try (Connection conn = DriverManager.getConnection(jdbcUrl)) {
        Statement stmt = conn.createStatement();
        stmt.execute("CREATE TABLE users (id INT, name VARCHAR(50))");
        stmt.execute("INSERT INTO users VALUES (1, 'Alice')");
        
        ResultSet rs = stmt.executeQuery("SELECT * FROM users");
        assertTrue(rs.next());
        assertEquals("Alice", rs.getString("name"));
    }
}

Альтернативы:

  • Mocking (Mockito) для DAO/репозиториев
  • Testcontainers для поднятия реальных БД в Docker
  • Встроенные решения (например, Spring Boot Test с @DataJpaTest)

Главное — изолировать тесты и не зависеть от внешней инфраструктуры.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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