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

Как осуществить однократное поднятие контекста для использования тестов из разных классов

Для однократного поднятия контекста в тестах можно использовать аннотации JUnit 5 @TestInstance(Lifecycle.PER_CLASS) и @BeforeAll/@AfterAll. Это позволяет инициализировать ресурсы один раз для всех тестов в классе.

Для общего контекста между классами - создайте базовый тестовый класс с @BeforeAll/@AfterAll или используйте расширения (Extensions):

java
public class BaseTest {
    static SomeResource resource;
text
@BeforeAll
static void setup() {
    resource = new SomeResource(); // Инициализация 1 раз
}

@AfterAll
static void tearDown() {
    resource.close();
}

}

@TestInstance(Lifecycle.PER_CLASS)
class Test1 extends BaseTest {
// тесты используют общий resource
}

class Test2 extends BaseTest {
// тесты используют общий resource
}

text

Или через JUnit 5 Extensions:
```java
public class ResourceExtension implements BeforeAllCallback, AfterAllCallback {
    static SomeResource resource;

    @Override
    public void beforeAll(ExtensionContext context) {
        resource = new SomeResource();
    }

    @Override
    public void afterAll(ExtensionContext context) {
        resource.close();
    }
}

@ExtendWith(ResourceExtension.class)
class Test1 {
    // тесты используют ResourceExtension.resource
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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