#junit #junit5 #junit5-extension-model
Вопрос:
JUnit 5, по-видимому, настоятельно рекомендует не использовать наследование для совместного использования логики тестирования и вместо этого говорит использовать Extension
s.
Итак, мы преобразуем вещи в расширения.
То, что я часто вижу, — это большое количество тестов, программно добавляющих одни и те же три расширения. (Все три из них являются своего рода расширениями, которые необходимо добавлять программно в силу их природы…)
Я мог бы реализовать базовый класс, который добавляет эти три расширения, но затем я снова использую наследование.
Есть ли лучший способ?
например, что-то вроде этого было бы неплохо:
public class AcmeTestExtension implements Extension {
@RegisterExtension
public final Extension1 extension1 = new Extension1();
@RegisterExtension
public final Extension2 extension1 = new Extension2();
@RegisterExtension
public final Extension3 extension1 = new Extension3();
// can add methods here which delegate through to individual extensions
}
public class MyTest {
@RegisterExtension
public final AcmeTestExtension extension = new AcmeTestExtension();
}