У меня есть абстрактный базовый класс, который я использую в качестве основы для своих модульных тестов (TestNG 5.10). В этом классе я инициализирую всю среду для своих тестов, настраивая сопоставления базы данных и т. Д. Этот абстрактный класс имеет метод с @BeforeClass
аннотацией, который выполняет инициализацию.
Затем я расширяю этот класс конкретными классами, в которых у меня есть @Test
методы, а также @BeforeClass
методы. Эти методы выполняют инициализацию среды, зависящую от класса (например, помещают некоторые записи в базу данных).
Как я могу обеспечить определенный порядок @BeforeClass
аннотированных методов? Мне нужно, чтобы те из абстрактного базового класса выполнялись раньше, чем из расширяющегося класса.
Пример:
abstract class A {
@BeforeClass
doInitialization() {...}
}
class B extends A {
@BeforeClass
doSpecificInitialization() {...}
@Test
doTests() {...}
}
Ожидаемый заказ:
A.doInitialization
B.doSpecificInitialization
B.doTests
Фактический заказ:
B.doSpecificInitialization // <- crashes, as the base init is missing
(A.doInitialization // <---not executed
B.doTests) // <-/