У меня есть набор интеграционных тестов. У меня есть 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
?