Я настраиваю тесты, и для каждого из них мне нужно выполнять действия.Я не хочу реализовывать его в текущем абстрактном классе и хочу использовать интерфейс.Я вижу, мы можем установить метод по умолчанию.Но он не работает должным образом.
Я пытаюсь создать метод @Before
и @After
в абстрактном классе и вызываю метод по умолчанию из интерфейса, который я реализовал.И это работает.Но когда я напрямую, но @Before
и @After
в интерфейсе, это не работает.
Кто-то может сказать мне, что я делаю неправильно?
Вот мой тест:
public class myTestClass extends AbstractTest {
@Test
public void myTest1 {
System.out.println("Test List: " + myList.size());
// ...
}
}
Мой абстрактный класс был вызван некоторыми методами и реализует интерфейс:
public abstract class AbstractTest implements InterfaceTest {
// ...
}
А вот мой интерфейс, который я хочу вызвать до и после метода:
public interface InterfaceTest {
List<String> myList = new ArrayList<>();
@Before
default void before() {
System.out.println("TEST INIT Before");
myList.addAll(Arrays.asList("test1", "test2"));
}
@After
default void after() {
System.out.println("TEST INIT After");
myList.clear();
}
}
Я ожидал:
TEST INIT Before
Test List: 2
TEST INIT After
Но мой реальный результат:
Test List: 0
Спасибо, что прочитали