Junior — Middle
Kā nodrošināt, lai fikstūra tiktu izsaukta pēc testa vai skripta pabeigšanas?
sobes.tech AI
Atbilde no AI
Lai nodrošinātu, ka funkcija tīrīšanai tiek izsaukta pēc testa vai skripta beigām, parasti izmanto teardown vai finalizatoru mehānismus, kas garantē tīrīšanas koda izpildi neatkarīgi no testa rezultāta.
Populāros testēšanas ietvaros tas tiek īstenots ar speciālām metodēm vai dekoratoriem:
- pytest var izmantot fixture ar parametru
yield:
import pytest
@pytest.fixture
def resource():
# iestatīšana
res = acquire_resource()
yield res
# tīrīšana
release_resource(res)
- unittest (Python) gadījumā
tearDown()metode tiek izsaukta pēc katra testa:
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 ar JUnit izmanto anotācijas
@Aftervai@AfterEach:
@After
public void tearDown() {
releaseResource();
}
Šādā veidā tīrīšanas vai resursu atbrīvošanas bloks tiek garantēti izpildīts pēc testa, pat ja tests beidzas ar kļūdu.