Sobes.tech
Back to questions
Junior — Middle
93

Каким образом можно обеспечить вызов фикстуры после окончания выполнения теста или скрипта?

Companies where asked
Золотое ЯблокоЗолотое Яблоко

Answer from AI

sobes.tech AI

Чтобы обеспечить вызов фикстуры после окончания теста или скрипта, обычно используют механизмы teardown или финализаторы, которые гарантируют выполнение кода очистки вне зависимости от результата теста.

В популярных тестовых фреймворках это реализуется через специальные методы или декораторы:

  • В pytest можно использовать фикстуру с параметром yield:
import pytest

@pytest.fixture
def resource():
    # setup
    res = acquire_resource()
    yield res
    # teardown
    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();
}

Таким образом, фикстура или ресурс освобождается в блоке, который гарантированно выполнится после теста, даже если тест упал с ошибкой.