Quelle est la principale différence entre
@Before
et@BeforeClass
- et dans JUnit 5
@BeforeEach
et@BeforeAll
- et dans JUnit 5
@After
et@AfterClass
Selon le JUnit Api @Before
est utilisé dans le cas suivant:
Lors de l'écriture de tests, il est courant de constater que plusieurs tests nécessitent la création d'objets similaires avant de pouvoir s'exécuter.
Considérant que @BeforeClass
peut être utilisé pour établir une connexion à la base de données. Mais ne pouvait pas @Before
faire la même chose?
@BeforeClas
est statique. Il s'exécute avant la création des instances de classe de test.@BeforeAll
peut être non statique et appeler à chaque nouvelle exécution d'instance de test. Voir la réponse correspondante stackoverflow.com/a/55720750/1477873Les différences entre chaque annotation sont:
La plupart des annotations dans les deux versions sont identiques, mais peu diffèrent.
Référence
Ordre d'exécution.
Boîte en pointillés -> annotation facultative.
la source
Avant et BeforeClass dans JUnit
L'
@Before
annotation de fonction sera exécutée avant chacune des fonctions de test de la classe ayant une@Test
annotation mais la fonction avec@BeforeClass
ne sera exécutée qu'une seule fois avant toutes les fonctions de test de la classe.De même, la fonction avec
@After
annotation sera exécutée après chacune des fonctions de test dans la classe ayant une@Test
annotation mais la fonction avec@AfterClass
ne qu'une seule fois après toutes les fonctions de test de la classe.SampleClass
Échantillon test
Production
En juin 5
la source
Pareil que
la source