В тестовом модуле фикстура pytest с областью действия «на модуль» используется тестами из двух классов. Каков её жизненный цикл?
База Hintsage
Тестирование
pytest, fixtures, mocks и организация тестов.
Практика
Вопросы: Тестирование
Вам нужно подменить сетевой вызов в тесте, но функция уже сохранена в локальном имени модуля. Какой вызов фактически выполнится?
from unittest.mock import patch
def fetch_data():
return "real"
controller_fetch_data = fetch_data
def load():
return controller_fetch_data()
def test_load():
with patch(__name__ + ".fetch_data", return_value="fake"):
assert load() == ???
В тесте подмена зависимости принимает аргументы, которых реальная функция не поддерживает. Как добиться, чтобы такая ошибка обнаруживалась во время теста?
При цепочке зависимостей фикстур как pytest определяет порядок их подготовки?
Представьте, что тест использует yield-фикстуру, а сам тест завершается исключением. Выполнится ли код после yield?
В практической ситуации тест находится во вложенном каталоге, где одноимённые фикстуры объявлены в двух conftest.py. Какую фикстуру выберет pytest?
Что происходит с параметром при косвенной параметризации pytest через фикстуру?
Объясните механизм: что именно проверяет assert_called_once_with у unittest.mock.Mock и чего успешная проверка не доказывает?
В проекте pytest тест не запрашивает фикстуру явно, но она всё равно запускается. Как pytest определяет, что эта фикстура обязательна для такого теста?
В одном тесте две фикстуры зависят от общей function-scoped фикстуры. Сколько раз pytest создаст общую фикстуру и почему?
У unittest.mock.Mock в side_effect передали последовательность значений. Что произойдёт при последующих вызовах?
Тест с фикстурой monkeypatch завершается исключением: останутся ли внесённые ею изменения после завершения теста?
Сессионная фикстура pytest зависит от фикстуры с областью действия «на функцию». Что произойдёт при запуске тестов?
Сравните поведение unittest.mock.Mock с параметром wraps и обычного Mock без него при вызове метода: откуда берётся возвращаемое значение?
В тесте подготовка данных выполняется внутри блока pytest.raises. Как сузить область проверки, чтобы ожидаемое исключение относилось только к целевому вызову?
Разберите ситуацию: фикстура pytest возвращает фабрику, которая создаёт временные объекты при каждом вызове. Что определяет, будут ли эти объекты общими между тестами?
В фикстуре pytest очистка зарегистрирована через addfinalizer до создания ресурса. Будет ли вызвана очистка, если создание ресурса завершится исключением?
После нескольких сценариев один и тот же Mock переиспользуют в тесте: что именно очищает reset_mock, а что сохраняет?
В двух непакетных каталогах проекта лежат тестовые файлы с одинаковым именем. Что может произойти при их сборке pytest и какое решение предотвращает конфликт?
Разработчик создаёт Mock со спецификацией класса и затем присваивает ему новый атрибут. Какое ограничение даёт spec_set по сравнению с spec?
Показано 1–20 из 50