Sobes.tech
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 @After võ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.