Junior — Middle
Kuidas tagada fikstu kutsumine pärast testi või skripti lõppu?
sobes.tech AI
Vastus AI-lt
Testi või skripti lõpus kutsutava funktsiooni tagamiseks kasutatakse tavaliselt teardown või finaliseerimise mehhanisme, mis tagavad puhastuskoodi täitmise sõltumata testi tulemusest.
Populaarsetes testiraamistikutes realiseeritakse see spetsiaalsete meetodite või dekoratiividega:
- pytest-is saab kasutada fixture'i koos parameetriga
yield:
import pytest
@pytest.fixture
def resource():
# seadistamine
res = acquire_resource()
yield res
# puhastamine
release_resource(res)
- unittest (Python) puhul kutsutakse
tearDown()meetod iga testi järel:
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 puhul kasutatakse JUnit-iga annotatsioone
@Aftervõi@AfterEach:
@After
public void tearDown() {
releaseResource();
}
Sel viisil käivitatakse puhastamise või ressursi vabastamise blokk garanteeritult pärast testi, isegi kui test ebaõnnestub veaga.