Встречается на собеседованиях • сегодня

В чем разница между mock и fixture в pytest

Mock (из unittest.mock или pytest-mock) подменяет реальный объект на фейковый для тестирования. Используется для изоляции тестов от внешних зависимостей (API, БД и т.д.).

Fixture — это функция, которая подготавливает данные или состояние для теста. Может быть переиспользована между тестами, управляется через @pytest.fixture.

Пример:

python
import pytest
from unittest.mock import Mock

@pytest.fixture
def user_data():
    return {"name": "Alice", "age": 30}

def test_user_age(user_data, mocker):
    mock_db = mocker.patch("db.get_user", return_value=user_data)
    result = mock_db()
    assert result["age"] == 30

Разница:

  • mock заменяет объект, fixture предоставляет данные.
  • mock обычно временный (в рамках теста), fixture может быть сессионной.
  • mock для изоляции, fixture для подготовки окружения.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы