J'ai remarqué que jUnit exécute le constructeur de ma classe de test pour chaque méthode testée. Voici un exemple:Comment instancier une ressource partagée dans JUnit
public class TestTest {
protected BigUglyResource bur;
public TestTest(){
bur=new BigUglyResource();
System.out.println("TestTest()");
}
@Test
public void test1(){
System.out.printf("test1()\n");
}
@Test
public void test2(){
System.out.printf("test2()\n");
}
@Test
public void test3(){
System.out.printf("test3()\n");
}
}
donne le résultat suivant:
TestTest() test1() TestTest() test2() TestTest() test3()
appeler le constructeur à BigUglyResource est trop de temps, je préfère construire une seule fois. Je sais que vous pouvez utiliser @BeforeClass pour exécuter une méthode une fois, mais @BeforeClass est uniquement pour les méthodes statiques. Les méthodes statiques ne peuvent pas accéder à une propriété de classe comme BigUglyResource dans l'exemple ci-dessus. Autre que la construction d'un Singleton, quelles sont les options?
Je suis surpris que cela ne m'est pas venu à l'esprit. – User1