Junit @Before/@After叫什么顺序?
我有一个集成测试套件。我有一个类供我所有的测试扩展。此基类具有用于建立 API 和数据库连接的 () 和 () 方法。我一直在做的就是在每个测试用例中重写这两个方法,并调用 和 。但是,如果有人忘记呼叫超级或将他们放在错误的位置并引发异常并且他们忘记在最终或什么地方调用超级,这可能会导致问题。IntegrationTestBase
@Before
public void setUp()
@After
public void tearDown()
super.setUp()
super.tearDown()
我想做的是在基类上制作和方法,然后添加我们自己的注释和方法。做一些初始测试,它似乎总是按以下顺序调用: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?* }
}