# Fake об'єкт

Fake об’єкт (або Stub) це об’єкт-замінник який не виконує повністю необхідної роботи, а тільки симулює її виконання.

Стаби використовуються при підході до [розробки без обліку залежностей](https://interlink.gitbook.io/process/process/development-process/planing/software-requirement/no-dependencies), а також в юніт тестуванні.

Наприклад, клас, який відповідає за зберігання файлу передається всередині тестової функції foo(File file) і там виконує file.save(); Можна зробити Stub клас-спадкоємець від File який замість реального зберігання буде містити лічильник виклику методу save(). Використання:\
`file = new FileStub()`\
`foo(file)`\
`assert(file.executionCount(), 1)`

Тестові фреймворки зазвичай містять механізми для автоматичного створення стабів на основі реальних об’єктів, дозволяють перевизначати значення, які повертаються в залежності від переданих параметрів.<br>
