<? phpukraine СТАТТІ
⌕Пошук по платформі

Тестування PHP-застосунків

Pest і PHPUnit, тестові дані, мутаційне тестування, тести на легасі-код і що робити з повільним CI.

ФІЛЬТР Pest
Тег «Pest» це фільтр, а не сторінка: у пошук він не віддається, canonical лишається /articles/testing. Найсильніші теги перетворимо на окремі хаби, коли під них набереться контент.
НАЙНОВІША ТЕСТУВАННЯ 30 вересня 2026

Покриття коду: яке число має сенс і чому 100% не ціль

Один прогін дає три різні відсотки: рядки, гілки, шляхи. Розбираємо, що саме рахує php-code-coverage, чому загальне покриття на проєкті з історією нікого не рятує, і як поставити поріг у CI, щоб він ловив недотестований новий код, а не змушував писати тести на геттери.

РP Редакція phpukraine · 7 хв читання
5 статей
ТЕСТУВАННЯ 30 вересня 2026 Покриття коду: яке число має сенс і чому 100% не ціль Один прогін дає три різні відсотки: рядки, гілки, шляхи. Розбираємо, що саме рахує php-code-coverage, чому загальне покриття на проєкті з історією нікого не рятує, і як поставити поріг у CI, щоб він ловив недотестований новий код, а не змушував писати тести на геттери. РP Редакція phpukraine · 7 хв ·Покриття ·PHPUnit ·Pest ТЕСТУВАННЯ 13 вересня 2026 Мутаційне тестування з Infection: що воно знаходить у зелених тестах Зелений сьют і 100% покриття кажуть лише те, що рядки виконувались. Infection ламає код навмисно й показує, які зміни ваші тести пропускають. Розбираємо перший запуск, читання вижилих мутантів і те, як не втопити CI. РP Редакція phpukraine · 4 хв ·Infection ·Мутаційне тестування ·Pest ТЕСТУВАННЯ 13 вересня 2026 Що саме охороняти архітектурними тестами: сім правил, які окупаються Заборона Illuminate у домені - це перше правило, а не весь набір. Сім конкретних arch-правил на Pest, які ловлять реальні поломки: витік Eloquent у use case, цикл між контекстами, мутабельний value object і unit-тести, що непомітно ходять у базу. РP Редакція phpukraine · 6 хв ·Pest ·Архітектура ·Шари ТЕСТУВАННЯ 4 вересня 2026 Feature-тести HTTP у Pest: перевіряти сторінку, а не реалізацію Feature-тест має відповідати на питання «що отримає браузер і краулер», а не «які методи викликав контролер». Розбираємо на реальних тестах phpukraine: canonical, meta robots, JSON-LD і sitemap — що перевіряти в HTTP-тесті, що винести в юніт і як не переписувати тести після кожного рефакторингу вʼю. РP Редакція phpukraine · 7 хв ·Pest ·Feature-тести ·Laravel ТЕСТУВАННЯ 1 вересня 2026 Архітектурні тести в Pest: як заборонити Illuminate у домені й перестати про це сперечатись Домовленості про шари живуть у README, доки хтось не імпортує фасад у value object. Показуємо, як phpukraine тримає межі модульного моноліту шістьма тестами, що падають на code review, а не в продакшені. МЛ Михайло Левицький · 4 хв ·Pest ·Архітектура ·DDD