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

Как настроить mock так, чтобы он возвращал разные значения при нескольких вызовах

Для настройки мока с разными возвращаемыми значениями при последовательных вызовах можно использовать side_effect. Это может быть список значений или функция, которая будет вызываться при каждом обращении к моку.

python
from unittest.mock import Mock

mock = Mock()
mock.side_effect = [10, 20, 30]

print(mock())  # 10
print(mock())  # 20
print(mock())  # 30

Если нужна более сложная логика, можно передать функцию в side_effect:

python
def mock_behavior():
    return some_dynamic_value

mock.side_effect = mock_behavior

При исчерпании списка значений будет вызвано StopIteration. Для постоянного циклического поведения можно использовать itertools.cycle.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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