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

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

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

НАЙНОВІША ТЕСТУВАННЯ 4 вересня 2026

Фейки замість моків: як тестувати use case без бази

Мок, який знає про кожен виклик репозиторію, ламається від будь-якого рефакторингу і при цьому не перевіряє стан. Показуємо, як in-memory реалізація порту на 20 рядків і FrozenClock замінюють десяток shouldReceive і роблять unit-тести use case швидкими та детермінованими.

РP Редакція phpukraine · 7 хв читання
4 статті
ТЕСТУВАННЯ 4 вересня 2026 Фейки замість моків: як тестувати use case без бази Мок, який знає про кожен виклик репозиторію, ламається від будь-якого рефакторингу і при цьому не перевіряє стан. Показуємо, як in-memory реалізація порту на 20 рядків і FrozenClock замінюють десяток shouldReceive і роблять unit-тести use case швидкими та детермінованими. РP Редакція phpukraine · 7 хв ·Unit-тести ·DDD ·Фейки ТЕСТУВАННЯ 4 вересня 2026 Feature-тести HTTP у Pest: перевіряти сторінку, а не реалізацію Feature-тест має відповідати на питання «що отримає браузер і краулер», а не «які методи викликав контролер». Розбираємо на реальних тестах phpukraine: canonical, meta robots, JSON-LD і sitemap — що перевіряти в HTTP-тесті, що винести в юніт і як не переписувати тести після кожного рефакторингу вʼю. РP Редакція phpukraine · 7 хв ·Pest ·Feature-тести ·Laravel ТЕСТУВАННЯ 4 вересня 2026 CI на 20 хвилин: що прискорювати першим у PHP-проєкті Коли пайплайн триває 20 хвилин, розробники перестають чекати на зелений білд і мержать наосліп. Розбираємо, у якому порядку різати цей час у типовому Laravel-проєкті: від безкоштовних налаштувань раннера до паралельного запуску, який має йти останнім, а не першим. РP Редакція phpukraine · 6 хв ·CI ·PHPUnit ·Продуктивність тестів ТЕСТУВАННЯ 1 вересня 2026 Архітектурні тести в Pest: як заборонити Illuminate у домені й перестати про це сперечатись Домовленості про шари живуть у README, доки хтось не імпортує фасад у value object. Показуємо, як phpukraine тримає межі модульного моноліту шістьма тестами, що падають на code review, а не в продакшені. МЛ Михайло Левицький · 4 хв ·Pest ·Архітектура ·DDD