У меня есть тестовый комплект интеграции. У меня есть класс 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?* }
}