Типи test doubles
- Stub — повертає задані значення. Без перевірки викликів
- Mock — додатково перевіряє, що певні методи були (або не були) викликані
- Spy — записує виклики, але делегує до реальної реалізації
- Fake — спрощена реальна реалізація (in-memory репозиторій)
- Dummy — об'єкт-заглушка, що передається але не використовується
Коли не мокати
Мокати слід зовнішні залежності (email, S3, платіжна система), а не власний код. Якщо ви мокаєте свої ж класи — це сигнал, що архітектура потребує рефакторингу.