Sobes.tech
Junior — Middle

Тест же скрипт аяктагандан кийин фикстураны чакырууну кантип камсыз кылса болот?

sobes.tech AI

AIден жооп

Тесттин аяктоосон кийин тазалоо функциясынын чакырылышын камсыз кылуу үчүн, адатта teardown же финализатор механизмдери колдонулат, алар тесттин жыйынтыгынан көз карандысыз тазалоо кодунун ишке ашуусун кепилдейт.

Популярдуу тест frameworkдеринде бул атайын методдор же декораторлор аркылуу ишке ашырылат:

  • pytestте, yield параметри менен fixture колдонсо болот:
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();
}

Мындан тышкары, тазалоо же ресурсты бошотуу блогу тесттен кийин, тест катасыз болсо да, кепилденген түрдө ишке ашырылат.