Junior — Middle
Comment assurer l'appel de la fixture après la fin de l'exécution du test ou du script?
sobes.tech IA
Réponse de l'IA
Pour assurer l'appel de la fonction de nettoyage après la fin du test ou du script, on utilise généralement des mécanismes de teardown ou de finalisation, qui garantissent l'exécution du code de nettoyage indépendamment du résultat du test.
Dans les frameworks de test populaires, cela se réalise via des méthodes spéciales ou des décorateurs :
- Dans pytest, on peut utiliser une fixture avec le paramètre
yield:
import pytest
@pytest.fixture
def resource():
# configuration
res = acquire_resource()
yield res
# nettoyage
release_resource(res)
- Dans unittest (Python), la méthode
tearDown()est appelée après chaque test :
import unittest
class MyTest(unittest.TestCase):
def setUp(self):
self.res = acquire_resource()
def tearDown(self):
release_resource(self.res)
def test_something(self):
self.assertTrue(use_resource(self.res))
- En Java avec JUnit, l'annotation
@Afterou@AfterEach:
@After
public void tearDown() {
releaseResource();
}
Ainsi, la fonction ou la ressource de nettoyage est libérée dans un bloc qui s'exécute de manière garantie après le test, même si le test échoue avec une erreur.