
Тестирование 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» при попытке запустить их вместе.

Unit tests matter
Или Roadmap для Unit тестов на WordPress.

Замена конструкций exit/die в unit-тестах
Если в коде вы используете die/exit то PHPUnit прекратит свою работу в этот момент. Для этого нам нужно заменить конструкцию exit
или die
. Но это сделать сложно т.к. Functions Mocker с этим не справляется.

Модульное тестирование WordPress с помощью Brain Monkey
Кто еще не знаком с тестированием и модульным тестированием можете ознакомится: Автоматизация тестирования, Модульное тестирование с помощью PHPUnit.

Подмена встроенных php-функций
Часто при написании тестов необходимо протестировать внешнюю функцию или функцию, которая встроена в php.

Тестирование абстрактных методов
Объект абстрактного класса мы не можем создать напрямую. Поэтому работать с ним будем через stub
. Что такое stub
можно прочитать в статье про Модульное тестирование.

Вызов защищенных и приватных методов
Если вам понадобился данный трюк, то, скорее всего, вы имеете проблему в архитектуре вашего класса/приложения. Его использование — это крайняя мера.

Тестирование объектов с извращениями в конструкторе
Иногда разработчики добавляют в конструктор какие-то нежелательные эффекты, вызовы различных методов или зависимости с другими объектами.

Как тестировать Hard Dependencies в PHPUnit с помощью Mockery
Если у вас возникают вопросы: Что такое Hard Dependencies и почему это плохо? Вы можете прочитать в статье «Dependency Injection the best design pattern«.