У меня есть тестовый комплект интеграции. У меня есть класс IntegrationTestBase
для всех моих тестов. Этот базовый класс имеет методы @Before
(public void setUp()
) и @After
(public void tearDown()
) для установления соединений API и DB. То, что я делаю, просто переопределяет эти два метода в каждой тестовой папке и вызывает super.setUp()
и super.tearDown()
. Однако это может вызвать проблемы, если кто-то забывает называть супер или помещает их в неправильное место, и возникает исключение, и они забывают вызвать super в конце или что-то в этом роде.
Что я хочу сделать, это сделать методы setUp
и tearDown
в базовом классе final
, а затем просто добавить собственные аннотированные методы @Before
и @After
. Выполняя некоторые начальные тесты, он всегда вызывается в следующем порядке:
Base @Before
Test @Before
Test
Test @After
Base @After
но я немного обеспокоен тем, что заказ не гарантирован и что это может вызвать проблемы. Я оглянулся и ничего не видел по этому поводу. Кто-нибудь знает, могу ли я сделать это и не иметь никаких проблем?
код:
public class IntegrationTestBase {
@Before
public final void setUp() { *always called 1st?* }
@After
public final void tearDown() { *always called last?* }
}
public class MyTest extends IntegrationTestBase {
@Before
public final void before() { *always called 2nd?* }
@Test
public void test() { *always called 3rd?* }
@After
public final void after() { *always called 4th?* }
}