В тестировании моки, стабы и фэйки используются для изоляции тестируемого кода от зависимостей, но у них разные цели и поведение.
Стабы (Stubs)
Для чего: Заглушки, которые возвращают предопределённые данные.
Когда использовать: Когда нужно заменить реальный объект, чтобы тест получил конкретные данные.
Моки (Mocks)
Для чего: Объекты, которые проверяют взаимодействие (был ли вызов метода, с какими аргументами).
Когда использовать: Когда важно проверить, что тестируемый код правильно вызывает другие методы.
Фэйки (Fakes)
Для чего: Упрощённые, но рабочие реализации зависимостей (например, база данных в памяти).
Когда использовать: Когда нужна лёгкая, но функциональная замена реальной системы.
Вывод
Стаб — для подмены данных.
Мок — для проверки вызовов.
Фэйк — для упрощённой, но рабочей замены.