Junior — Middle
Ako zabezpečiť volanie fixture po ukončení testu alebo skriptu?
sobes.tech AI
Odpoveď od AI
Aby ste zabezpečili volanie funkcie na upratovanie po ukončení testu alebo skriptu, zvyčajne sa používajú mechanizmy teardown alebo finalizátory, ktoré garantujú vykonanie kódu na upratovanie bez ohľadu na výsledok testu.
V populárnych testovacích rámcoch sa to realizuje prostredníctvom špeciálnych metód alebo dekorátorov:
- V pytest môžete použiť fixture s parametrom
yield:
import pytest
@pytest.fixture
def resource():
# nastavenie
res = acquire_resource()
yield res
# upratovanie
release_resource(res)
- V unittest (Python) sa po každom teste volá metóda
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))
- V Jave s JUnit sa používajú anotácie
@Afteralebo@AfterEach:
@After
public void tearDown() {
releaseResource();
}
Týmto spôsobom sa blok na upratovanie alebo uvoľnenie zdroja vykoná garantovane po teste, aj keď test zlyhá s chybou.