Я хотел бы написать Расширение JUnit5 , которое расширяет мой тестовый класс,
@ExtendWith(MyExtension.class)
public class MyTestClass {
@Test myTest1() {}
@Test myTest2() {}
// ...
}
Однако мой тестовый класс также реализует определенный интерфейс, поэтому он выглядит примерно так:
public interface SomeInterface {
SomeClient getSomeClient();
SomeClient getSomeClientAsAdministrator();
}
@ExtendWith(MyExtension.class)
public class MyTestClass implements SomeInterface {
@Test myTest1() {}
@Test myTest2() {}
// ...
SomeClient getSomeClient() {
// ...
}
SomeClient getSomeClientAsAdministrator() {
// ...
}
}
Пока никаких загадок.
Но теперь я хочу, чтобы эти реализации интерфейса были также доступны для расширения, например,
public class MyExtension implements BeforeEachCallback, SomeInterface
{
@Override
public void beforeAll(ExtensionContext extensionContext) {
// be able to use getSomeClient();
}
}
Как я могу настроить свои классы для достижения этой цели? (Или какой врожденный недостаток или запах кода препятствует этому?)