Русский
Открыть в Telegram

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

13 августа 2024
О
Одержимый кодом🔥
Фотография
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
517 ·

Рядом в ленте

ООдержимый кодом🔥Obsidian или Notion? Использую Obsidian для заметок и планирования. Очень нравится скорость его работы, md-редактор и связи между заметками.👍 Но есть и минусы -ООдержимый кодом🔥📢 Мой опыт разработки open-source проекта на примере MoonShine Привет, коллеги! Написал еще одну статьей на Хабре, где я рассказываю о своем опыте разработки Mo
это сообщение
ООдержимый кодом🔥Привет, коллеги! Как всё успевать и не выгореть в хаосе задач? Я прошел путь от работы по найму, где моё время организовывали за меня, до самостоятельного управООдержимый кодом🔥Друзья, приветствую! Как вы уже, наверное, знаете, Notion заблокировал аккаунты пользователей из России. И как назло, я только начал привыкать к этому удобному
ООдержимый кодом🔥Одержимый кодом🔥@cutcode · канал
349подписчиков86постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем