Для работы библиотеки необходимо иметь PHP 8.1 или выше
, все необходимое для ее работы уже включено в саму библиотеку.
Если вы не используете композер в вашем проекте, то можно просто скачать все файлы из каталога src
(ветка master
) и разместить их в вашем
проекте.
Также существует версия под PHP 7.4.x
, релиз код можно найти в ветке master-7
(GitHub)
Версии под PHP 7.3.x и ниже
скорее всего не будет((( Версия под PHP 8.0.x
возможно появится в ближайшем будущем
Под понятием класс подразумеваются все типы классов PHP: class
, abstract class
, interface
, trait
и enum
Моки (от английского Mocks) или "тестовые двойники" - Классы, объекты или методы. В целом полностью идентичные некому
оригиналу, но имеющие возможность, для каких-то условий (аргументов для методов) возвращать заранее подготовленные данные
(это может быть return
, исключение или вызов какой-то пользовательской функции)
Мок-Класс
: Класс, в котором все возможные методы были преобразованы в мок-методы, а в сам класс добавлены методы, для взаимодействия с непубличными методами, свойствами и константамиМок-Объект
: Объект, созданный на основе мок-класса или содержащий мок-методы, полученные с помощью наследованияПолный мок-объект
: Объект - экземпляр мок-классаЧастичный мок-объект
: Объект, не являющийся "экземпляром мок-класса", но имеющий мок-методы, описанные в родительских классах (трейтах)
Мок-метод
: Метод, который может вернуть заранее подготовленное значение для ответа (в этом случае код метода не выполняется)Кейс вызова
: набор аргументов с которыми может быть вызван метод. Кейс вызова используется, для изменения поведения вызванной функции
Основные функции для работы с библиотекой
Информация для разработчиков и история изменений
Моки (тестовые двойники)
- Мок-классы
- Создание с помощью изменения PHP кода
- Создание с помощью наследования
- Параметры создания мок-классов (Установка имен для создаваемых мок-классов)
- Автозагрузка классов, с преобразованием в мок-классы
- Менеджер мок-классов (Взаимодействие с мок-классами)
- Получение менеджера
- Взаимодействие с непубличными элементами (методами, константами, свойствами)
- Создание объектов управляемого мок-класса
- Менеджер мок-метода для мок-класса
- Менеджер мок-объектов (Взаимодействие с мок-объектами)
- Получение менеджера
- Взаимодействие с непубличными элементами (методами, константами, свойствами)
- Менеджер мок-метода для мок-объекта
- Менеджер методов (Взаимодействие с методами мок-классов и мок-объектов)
- Кейс вызова мок-метода
- Аргументы по ссылке и изменение значений аргументов
- Как происходит обработка вызова мок-метода
Дополнительные инструменты
- Облегчение создания объектов
- Чтение private и protected констант
- Вызов private и protected методов
- Чтение и запись private и protected свойств
- Инструменты для облегчения тестирования
Установка
Также смотрите Вопросы/Ответы
В каталоге examples-ru репозитория, вы также можете найти примеры по работе с PhpMocker
Остались вопросы, пишите на dracul.aid@gmail.com