Sobes.tech
Junior — Middle
133

Jak zapewnić wywołanie fikstury po zakończeniu testu lub skryptu?

Firmy, w których zadano pytania
Золотое ЯблокоЗолотое Яблоко

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

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