Зачем в фикстурах Pytest нужен yield?

В yield-фикстуре pytest код до yield подготавливает ресурс и передаёт его тесту, а код после — освобождает ресурс после использования. Scope определяет срок жизни экземпляра фикстуры.

Короткий ответ

Что ответить на собеседовании

В yield-фикстуре pytest код до yield подготавливает ресурс и передаёт его тесту, а код после — освобождает ресурс после использования. Scope определяет срок жизни экземпляра фикстуры.

Подробный разбор

Ответ с пояснениями

В yield-фикстуре pytest код до yield подготавливает ресурс и передаёт его тесту, а код после — освобождает ресурс после использования. Scope определяет срок жизни экземпляра фикстуры.

Это позволяет держать подготовку и очистку рядом. Если ошибка возникла до достижения yield, обычная часть после него не выполняется: уже созданные ресурсы нужно защищать отдельно. При падении самого теста teardown обычно выполняется, но аварийное завершение процесса не даёт такой гарантии.

Источник: docs.pytest.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее