TG Telegram Group & Channel
Одержимый кодом🔥 | United States America (US)
Create: Update:

Pest vs PHPUnit: Моя история выбора🧐

История нашего знакомства с Pest началась с обзора на моем канале. Тогда я еще не вполне осознавал все преимущества этого подхода, но меня впечатлило отсутствие классов, что значительно сокращало тестовые файлы. Также привлекли удобный fluent-интерфейс для написания тестов, функциональный подход и возможность группировки тестов для удобного вызова.

Мы решили рискнуть и перевести нашу open-source админку MoonShine с PHPUnit на Pest. В процессе возникли вопросы, о которых поговорим позже, но мы решили идти до конца, полагая, что это дело привычки: нужно просто принять новый, красивый подход.

Не буду ходить вокруг да около и сразу скажу главную мысль итогового обзора:

Не стоит использовать библиотеку, с которой невозможно работать без вспомогательных плагинов для IDE.

Pest как раз такая библиотека, и сейчас вы поймете почему.

Мы используем динамические свойства внутри функций (под капотом магические __get, __set, но сути не меняет). Классов нет, но создаются свойства, которые IDE не может определить между тестовыми функциями. Даже с плагином свойства подсвечиваются как нечто инородное, что со временем начинает резать глаз.

Подход через fluent от функции expect в реальном проекте выглядит так (смотреть обложку поста).

Постоянно хочется разбить на несколько expect, но плагин настаивает на соблюдении концепции и использовании and.

Преимущество группировок и их быстрых вызовов утратило актуальность с появлением атрибутов с группами в новых версиях PHPUnit, что выглядит даже удобнее.

В итоге, лично для меня плюсов не осталось, а минусы очевидны: тесты сложнее читать, без плагина их невозможно писать и понимать, много костылей.

Мы решили вернуться к PHPUnit и отказаться от Pest. Я рад, что мой курс по изучению продвинутых методик Laravel на примере интернет-магазина, часть 2 (API), задержался, так как планировал делать его с Pest. Теперь понимаю, что не стоит.

Однако, несмотря на этот негативный опыт, я не жалею, что попробовал Pest. Любой опыт, даже неудачный, позволяет лучше понимать свои инструменты и делать более осознанный выбор в будущем. Подробнее мысли изложил в ролике - https://youtu.be/1tWhPTmLW34

Pest vs PHPUnit: Моя история выбора🧐

История нашего знакомства с Pest началась с обзора на моем канале. Тогда я еще не вполне осознавал все преимущества этого подхода, но меня впечатлило отсутствие классов, что значительно сокращало тестовые файлы. Также привлекли удобный fluent-интерфейс для написания тестов, функциональный подход и возможность группировки тестов для удобного вызова.

Мы решили рискнуть и перевести нашу open-source админку MoonShine с PHPUnit на Pest. В процессе возникли вопросы, о которых поговорим позже, но мы решили идти до конца, полагая, что это дело привычки: нужно просто принять новый, красивый подход.

Не буду ходить вокруг да около и сразу скажу главную мысль итогового обзора:

Не стоит использовать библиотеку, с которой невозможно работать без вспомогательных плагинов для IDE.

Pest как раз такая библиотека, и сейчас вы поймете почему.

Мы используем динамические свойства внутри функций (под капотом магические __get, __set, но сути не меняет). Классов нет, но создаются свойства, которые IDE не может определить между тестовыми функциями. Даже с плагином свойства подсвечиваются как нечто инородное, что со временем начинает резать глаз.

Подход через fluent от функции expect в реальном проекте выглядит так (смотреть обложку поста).

Постоянно хочется разбить на несколько expect, но плагин настаивает на соблюдении концепции и использовании and.

Преимущество группировок и их быстрых вызовов утратило актуальность с появлением атрибутов с группами в новых версиях PHPUnit, что выглядит даже удобнее.

В итоге, лично для меня плюсов не осталось, а минусы очевидны: тесты сложнее читать, без плагина их невозможно писать и понимать, много костылей.

Мы решили вернуться к PHPUnit и отказаться от Pest. Я рад, что мой курс по изучению продвинутых методик Laravel на примере интернет-магазина, часть 2 (API), задержался, так как планировал делать его с Pest. Теперь понимаю, что не стоит.

Однако, несмотря на этот негативный опыт, я не жалею, что попробовал Pest. Любой опыт, даже неудачный, позволяет лучше понимать свои инструменты и делать более осознанный выбор в будущем. Подробнее мысли изложил в ролике - https://youtu.be/1tWhPTmLW34
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍123🔥1


>>Click here to continue<<

Одержимый кодом🔥






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)