У меня есть набор интеграционных тестов. У меня есть IntegrationTestBaseкласс для расширения всех моих тестов. Этот базовый класс имеет методы @Before( public void setUp()) и @After( public void tearDown()) для установления соединений API и БД. Я просто переопределяю эти два метода в каждом тестовом примере и вызываю super.setUp()и super.tearDown(). Однако это может вызвать проблемы, если кто-то забывает вызвать super или помещает их в неправильное место, и возникает исключение, и они забывают вызвать super в finally или еще что-то.
То , что я хочу сделать , это сделать 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?* }
}
MyTestотсутствует знакextends?