J'ai une suite de tests d'intégration. J'ai une IntegrationTestBase
classe pour étendre tous mes tests. Cette classe de base a une méthode @Before
( public void setUp()
) et @After
( public void tearDown()
) pour établir des connexions API et DB. Ce que j'ai fait, c'est simplement remplacer ces deux méthodes dans chaque cas de test et appeler super.setUp()
et super.tearDown()
. Cependant, cela peut causer des problèmes si quelqu'un oublie d'appeler le super ou le met au mauvais endroit et qu'une exception est levée et qu'il oublie d'appeler super finalement ou quelque chose comme ça.
Ce que je veux faire, c'est créer les méthodes setUp
and tearDown
sur la classe de base final
, puis ajouter simplement nos propres méthodes @Before
and annotées @After
. En faisant quelques tests initiaux, il semble toujours appeler dans cet ordre:
Base @Before
Test @Before
Test
Test @After
Base @After
mais je suis juste un peu inquiet que la commande ne soit pas garantie et qu'elle puisse causer des problèmes. J'ai regardé autour de moi et je n'ai rien vu sur le sujet. Est-ce que quelqu'un sait si je peux le faire et si je n'ai aucun problème?
Code:
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
manquant est- il unextends
?