Junior — Middle
Hogyan biztosítható, hogy a fixture hívása megtörténjen a teszt vagy szkript befejezése után?
sobes.tech MI
Válasz az MI-től
A teszt vagy szkript befejezése után a takarítási függvény hívásának biztosítására általában teardown vagy finalizátor mechanizmusokat használnak, amelyek garantálják a tisztítási kód végrehajtását a teszt eredményétől függetlenül.
Népszerű teszt keretrendszerekben ezt speciális módszerek vagy dekorátorok segítségével valósítják meg:
- A pytest-ben egy fixture-t a
yieldparaméterrel lehet használni:
import pytest
@pytest.fixture
def resource():
# setup
res = acquire_resource()
yield res
# teardown
release_resource(res)
- A unittest (Python) esetén a
tearDown()metódus minden teszt után meghívódik:
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))
- Java-ban a JUnit esetén az
@Aftervagy@AfterEachannotációkat használják:
@After
public void tearDown() {
releaseResource();
}
Így a takarítási vagy erőforrás felszabadítási blokk garantáltan végrehajtódik a teszt után, még akkor is, ha a teszt hibával ér véget.