Вышла новая версия PHPUnit 11.0

Дата публикации: 2024-02-02
Просмотры: 42

Вышла новая версия PHPUnit 11.0.
Это версия работает только с PHP 8.2 и выше.
В этой версии добавлены новые функции, изменены и удалены существующие функции, а также исправлены ошибки.

Вышла новая версия PHPUnit 11.0

Полный список изменений можно увидеть по этой ссылке.
Наиболее существенные изменения обсуждаются ниже.

Мне необходимо немедленно перейти на PHPUnit 11!

Нет это не так.

Тот факт, что PHPUnit 11 был выпущен, не означает, что PHPUnit 9 или PHPUnit 10 больше не будут работать. Хотя старые версии PHPUnit со временем перестанут получать исправления ошибок, будет поддерживаться их совместимость с новыми версиями PHP как можно дольше.

Надеюсь, что вы не используете звездочку для зависимостей и, следовательно, не обновляетесь автоматически и непреднамеренно до новой основной версии PHPUnit.

Обновление зависимости до новой основной версии должно быть осознанным решением, являющимся частью определенного процесса. Этот процесс должен включать, как минимум, чтение такого объявления и журнала изменений .

PHPUnit 11 требует PHP 8.2 или более поздней версии. Если вы не используете PHP 8.2 или PHP 8.3, вы не сможете сразу использовать PHPUnit 11.

PHPUnit 11 работает так, как задумано, но в некоторых отношениях он работает иначе, чем предыдущие версии. Например, функциональность, которая в PHPUnit 10 была объявлена устаревшей лишь мягко, теперь в PHPUnit 11 является жестко устаревшей. А функциональность, которая категорически устарела в PHPUnit 10, была удалена в PHPUnit 11.

Вам не следует даже пытаться перейти на PHPUnit 11, если вы не можете запустить свой набор тестов с использованием PHPUnit 10.5, не получив предупреждений об устаревании.

Если вышесказанное вас не смущает, то, пожалуйста, обновитесь!

Основные изменения в PHPUnit 11

Тестовые парные игры

Функциональность PHPUnit чистится для программного создания тестовых заглушек и макетов объектов. Это делается в первую очередь для того, чтобы сделать работу с тестовыми дублями проще и менее запутанной для разработчиков, использующих PHPUnit. Это делается, чтобы уменьшить сложность реализации, удаляя функции, которые не так необходимы, как десять или два года назад (а также функции, которые, вероятно, никогда не должны были быть реализованы вообще).

Методы создания фиктивных объектов для абстрактных классов и признаков уже были мягко устаревшими в PHPUnit 10, теперь они полностью устарели и будут удалены в PHPUnit 12. Тестирование конкретных классов в изоляции от их абстрактных базовых классов (и наоборот), а также тестирование свойств в изоляции от классов, которые их используют, не оказалось полезным.

Недавно добавлены специальные методы, такие как createStub() и createMock(), для создания тестовых заглушек и фиктивных объектов соответственно. Эти методы позволяют разработчикам ясно выражать свои намерения в написанном ими тестовом коде. Нужна тестовая заглушка, чтобы изолировать тестируемый код от зависимостей? Используйте createStub() для создания тестовой заглушки. Необходимо проверить связь между двумя объектами? Используйте createMock() для создания макета объекта.

Настройка ожиданий для объекта, созданного с помощью, createStub() вызовет предупреждение об устаревании в PHPUnit 11 и не будет работать в PHPUnit 12.

Метаданные

В PHPUnit 10 появилась поддержка атрибутов PHP 8 для добавления метаданных в тестовые классы и методы тестирования. Раньше аннотации в специальных комментариях PHP, называемые docblocks или doc-comments, были единственным способом добавления метаданных к единицам кода.

В PHPUnit 11 аннотации, которые можно использовать в специальных комментариях PHP для добавления метаданных в тестовые классы и методы тестирования, устарели. Поддержка этих аннотаций будет удалена в PHPUnit 12.


Ссылка на источник и полную статью: https://phpunit.de/announcements/phpunit-11.html

Поделиться статьей:

Комментарии:

Авторизуйтесь, для того, чтобы оставить комментарий. Войти на сайт
Подписка на новости
Узнавайте о новых статьях первыми.
Профиль