Sobes.tech
Назад к вопросам
Junior — Middle
90

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

Компании, где спрашивали
Золотое ЯблокоЗолотое Яблоко

Ответ от нейросети

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();
}

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