Моки, стабы и фэйки

В тестировании моки, стабы и фэйки используются для изоляции тестируемого кода от зависимостей, но у них разные цели и поведение.

Стабы (Stubs)
Для чего: Заглушки, которые возвращают предопределённые данные.
Когда использовать: Когда нужно заменить реальный объект, чтобы тест получил конкретные данные.

Моки (Mocks)
Для чего: Объекты, которые проверяют взаимодействие (был ли вызов метода, с какими аргументами).
Когда использовать: Когда важно проверить, что тестируемый код правильно вызывает другие методы.

Фэйки (Fakes)
Для чего: Упрощённые, но рабочие реализации зависимостей (например, база данных в памяти).
Когда использовать: Когда нужна лёгкая, но функциональная замена реальной системы.

Вывод
Стаб — для подмены данных.
Мок — для проверки вызовов.
Фэйк — для упрощённой, но рабочей замены.