Junior — Middle
Cum se poate asigura apelarea fixture-ului după finalizarea testului sau scriptului?
sobes.tech AI
Răspuns de la AI
Pentru a asigura apelarea funcției de curățare după terminarea testului sau scriptului, se folosesc de obicei mecanisme de teardown sau finalizatori, care garantează executarea codului de curățare indiferent de rezultatul testului.
În framework-urile de testare populare, acest lucru se realizează prin metode speciale sau decoratori:
- În pytest se poate folosi o fixture cu parametrul
yield:
import pytest
@pytest.fixture
def resource():
# setup
res = acquire_resource()
yield res
# teardown
release_resource(res)
- În unittest (Python), metoda
tearDown()este apelată după fiecare 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))
- În Java cu JUnit, se folosesc adnotările
@Aftersau@AfterEach:
@After
public void tearDown() {
releaseResource();
}
Astfel, funcția sau resursa de curățare este eliberată într-un bloc care se execută garantat după test, chiar dacă testul a eșuat cu o eroare.