По порядку Middle Тестирование и pytest обновлено

Жизненный цикл фикстуры с yield

Вопрос

Расставьте по порядку, что происходит при запуске теста, использующего фикстуру db_user (function scope) с yield.

Попробуйте сами

Расставьте шаги по порядку стрелками.

  1. 1
    Результат теста попадает в отчёт
  2. 2
    Значение из yield передаётся в аргумент теста
  3. 3
    pytest вызывает фикстуру и выполняет код до yield
  4. 4
    Выполняется тело теста
  5. 5
    pytest продолжает фикстуру: выполняется код после yield
Показать ответ и разбор

Коротко

Код до yield это setup, после yield это teardown, который выполняется и при падении теста. Статус теста фиксируется после завершения всех его фаз.

Правильный порядок

  1. 1
    pytest вызывает фикстуру и выполняет код до yield
  2. 2
    Значение из yield передаётся в аргумент теста
  3. 3
    Выполняется тело теста
  4. 4
    pytest продолжает фикстуру: выполняется код после yield
  5. 5
    Результат теста попадает в отчёт

Разбор

Код до yield это setup, после yield это teardown, который выполняется и при падении теста. Статус теста фиксируется после завершения всех его фаз.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме