Junior — Middle
Ինչպե՞ս ապահովել ֆիքստուրայի կանչը թեստի կամ սցենարի ավարտից հետո։
sobes.tech AI
Պատասխան AI-ից
Տեստի կամ սցենարի ավարտից հետո ֆունկցիայի կանչումը ապահովելու համար սովորաբար օգտագործվում են teardown կամ finalizer մեխանիզմներ, որոնք ապահովում են մաքրման կոդի կատարմանը անկախ թեստի արդյունքից:
Հայտնի թեստային ֆրեյմվորկներում դա իրականացնում է հատուկ մեթոդների կամ դեկորատորների միջոցով:
- pytest-ում կարելի է օգտագործել fixture-ը
yieldպարամետրով:
import pytest
@pytest.fixture
def resource():
# կազմաձևում
res = acquire_resource()
yield res
# մաքրման գործընթաց
release_resource(res)
- unittest (Python)-ում,
tearDown()մեթոդը կանչվում է յուրաքանչյուր թեստից հետո:
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-ով JUnit-ում օգտագործվում են
@Afterկամ@AfterEachնշումներ:
@After
public void tearDown() {
releaseResource();
}
Այսպիսով, մաքրման կամ ռեսուրսի ազատման բլոկը կատարվում է երաշխավորված կերպով՝ թեստից հետո, նույնիսկ եթե թեստը ձախողվի սխալի պատճառով: