Тестирование Warnings в PHPUnit 9+
Тестирование предупреждений (warnings), передаваемых через trigger_error
, вызывает предупреждение об устаревании в PHPUnit 9+.
Использование yield в провайдерах данных PHPUnit
Изначально я хотел написать общий пост о PHP генераторах, функции, появившейся в PHP 5.5.
Ошибка «Constant CONSTANT_NAME Already Defined» в PHPUnit
Если вы используете PHPUnit для запуска множества тестов, каждый из которых определяет константы, то вы можете столкнуться с ошибкой «Constant CONSTANT_NAME Already Defined» при попытке запустить их вместе.
Dependency Injection (Внедрение зависимостей)
Глубокое понимание патерна «dependency injection» — очень важная вещь для крутого разработчика.
UI тесты для WordPress (Codeception + WP Browser)
UI (E2E, GUI) тесты полностью эмулируют поведение пользователей в браузере. Данные тесты относятся к приемочному (acceptance) виду тестирования.
Замена конструкций exit/die в unit-тестах
Если в коде вы используете die/exit то PHPUnit прекратит свою работу в этот момент. Для этого нам нужно заменить конструкцию exit
или die
. Но это сделать сложно т.к. Functions Mocker с этим не справляется.
Чудо Mockery для заглушек в unit тестах
Потрясающая библиотека Mockery, которая сделает вашу жизнь лучше во время написания тестов.
Модульное тестирование WordPress с помощью Brain Monkey
Кто еще не знаком с тестированием и модульным тестированием можете ознакомится: Автоматизация тестирования, Модульное тестирование с помощью PHPUnit.
Подмена встроенных php-функций
Часто при написании тестов необходимо протестировать внешнюю функцию или функцию, которая встроена в php.
Тестирование абстрактных методов
Объект абстрактного класса мы не можем создать напрямую. Поэтому работать с ним будем через stub
. Что такое stub
можно прочитать в статье про Модульное тестирование.
Вызов защищенных и приватных методов
Если вам понадобился данный трюк, то, скорее всего, вы имеете проблему в архитектуре вашего класса/приложения. Его использование — это крайняя мера.
Подмена защищенных и приватных свойств для тестирования
Иногда в тестах нам нужно прочитать/заменить protected
или private
свойство объекта.
Тестирование объектов с извращениями в конструкторе
Иногда разработчики добавляют в конструктор какие-то нежелательные эффекты, вызовы различных методов или зависимости с другими объектами.
Как тестировать константы
Константы можно протестировать при помощи Function Mocker.
Как тестировать Hard Dependencies в PHPUnit с помощью Mockery
Если у вас возникают вопросы: Что такое Hard Dependencies и почему это плохо? Вы можете прочитать в статье «Dependency Injection the best design pattern«.
Модульное тестирование WordPress (PHPUnit, WP_Mock)
Кто еще не знаком с тестированием и модульным тестированием можете ознакомится: Автоматизация тестирования, Модульное тестирование с помощью PHPUnit.
Модульное тестирование (Unit tests) с помощью PHPUnit
Зачем нужны тесты и какие виды тестов должен писать разработчик вы можете узнать здесь.
Автоматизиция тестирования
Тестирование — проверка соответствия между реальным и ожидаемым поведением программы.