J'ai une classe de base abstraite, que j'utilise comme base pour mes tests unitaires (TestNG 5.10). Dans cette classe j'initialise l'ensemble de l'environnement pour mes tests, configuration des mappages de base de données, etc. Cette classe abstraite est une méthode avec un @BeforeClass
d'annotation qui ne l'initialisation.
Autre chose, j'étends la classe avec des classes spécifiques dans lesquels j'ai l' @Test
méthodes et @BeforeClass
méthodes. Ces méthodes spécifiques à la classe d'initialisation de l'environnement, par exemple, certains enregistrements dans la base de données.
Ma question est comment je peut faire exécuter un ordre spécifique de la @BeforeClass annoté méthodes. J'ai besoin de ceux de la classe de base abstraite pour être exécuté avant le celles de l'extension de la classe.
Exemple:
abstract class A {
@BeforeClass
doInitialization() {...}
}
class B extends A {
@BeforeClass
doSpecificInitialization() {...}
@Test
doTests() {...}
}
Ordre attendu:
A.doInitialization
B.doSpecificInitialization
B.doTests
Commande:
B.doSpecificInitialization // <- crashes, as the basic init is missing
(A.doInitialization // <---not executed
B.doTests) // <-/