Карточка Middle Тестирование и pytest обновлено
Mock, stub и fake
Вопрос
Чем отличаются stub, mock и fake?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Stub возвращает заготовленные ответы. Mock ещё и записывает вызовы, чтобы проверить взаимодействие.
Ответ
Stub возвращает заготовленные ответы. Mock ещё и записывает вызовы, чтобы проверить взаимодействие. Fake это рабочая упрощённая реализация (база в памяти, фейковый платёжный шлюз).
Разбор
unittest.mock.Mock умеет всё сразу. create_autospec или spec= ограничивают мок сигнатурой настоящего объекта, чтобы тест не проходил на несуществующих методах.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.