我有一个集成测试套件。我有一IntegrationTestBase
堂课可以扩展我的所有测试。该基类具有@Before
(public void setUp()
)和@After
(public void tearDown()
)方法来建立API和数据库连接。我一直在做的只是在每个测试用例中覆盖这两个方法,并调用super.setUp()
和super.tearDown()
。但是,如果有人忘记了调用super或将它们放置在错误的位置并抛出异常,而他们却忘记了在final之类的地方调用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?* }
}
MyTest
缺少的extends
吗?