Ответ
Нет, нельзя. В @ExtendWith можно указать только класс, реализующий интерфейс Extension (например, BeforeEachCallback, AfterTestExecutionCallback).
Пример корректного использования:
import org.junit.jupiter.api.extension.Extension;
import org.junit.jupiter.api.extension.BeforeEachCallback;
import org.junit.jupiter.api.extension.ExtensionContext;
class MyCustomExtension implements BeforeEachCallback {
@Override
public void beforeEach(ExtensionContext context) {
System.out.println("Before each test");
}
}
@ExtendWith(MyCustomExtension.class) // Корректно: MyCustomExtension реализует Extension
class MyTestClass {
// тесты...
}
Что произойдет, если указать неподходящий класс?
При запуске тестов будет выброшено исключение ParameterResolutionException, так как JUnit 5 не сможет создать экземпляр расширения.
Назначение расширений: Они позволяют перехватывать события жизненного цикла теста (перед/после выполнения), модифицировать параметры тестовых методов или изменять поведение тестового контейнера.