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

Что такое кэширование тестового контекста

Кэширование тестового контекста в JUnit (начиная с версии 5) позволяет повторно использовать контекст тестов между несколькими тестовыми методами, что ускоряет выполнение тестов. Это особенно полезно для тяжелых операций (например, инициализация Spring-контекста, подключение к БД).

Пример с аннотацией @TestInstance:

java
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class CacheTestContextExample {
    private ExpensiveResource resource;

    @BeforeAll
    void init() {
        resource = new ExpensiveResource(); // Инициализируется один раз для всех тестов
    }

    @Test
    void test1() { /* использует resource */ }
    @Test
    void test2() { /* использует resource */ }
}

Ключевые моменты:

  • По умолчанию JUnit создает новый экземпляр тестового класса для каждого метода (PER_METHOD)
  • PER_CLASS позволяет использовать один экземпляр для всех тестов
  • Spring Boot тесты автоматически кэшируют контекст через @DirtiesContext
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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