TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #5140 2.93K
Написание высококачественных тестов

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

Минимализм в тестах
Рекомендуется писать тесты минимального размера, содержащие только необходимый код. Это упрощает их понимание в будущем. Тест должен быть максимально лаконичным, но при этом полностью завершённым.

Стремление к 100% покрытию кода
Автор критикует подход, при котором допускается, например, 90% покрытие, так как это создает иллюзию надежности. Вместо этого предлагается избегать ненужного кода (например, геттеров и сеттеров, которые не используются) и исключать из анализа строки, которые невозможно покрыть тестами.

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

Снапшот-тестирование
Автор также обсуждает методику снапшот-тестирования, которая часто используется в фронтенд-разработке. Она фиксирует текущее состояние компонентов и позволяет быстро выявить изменения. Однако метод имеет недостатки, такие как хрупкость тестов и неочевидность их намерений.

Рекомендации
Для улучшения тестирования автор советует:

🔸Упрощать код тестов, оставляя только необходимое.
🔸Стремиться к 100% покрытию кода, исключая из анализа непокрываемые участки.
🔸Использовать правильные проверки, которые дают понятные сообщения об ошибках.
  • 🤩 1
More from @phpproglib
  1. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  2. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  3. Sep 30, 2026🐸 Библиотека пхпшника
  4. Sep 29, 2026💡 Laravel-фича, которая спасает тесты от случайных запросов Http::preventStrayRequests()…
  5. Sep 28, 2026🔐 ramsey/uuid — UUID без самописного кода Библиотека помогает генерировать, парсить и вал…
  6. Sep 28, 2026🤔 Что выведет код? ❤️ — 1 🔥 — 2 👍 — 12 👾 — Fatal error 👇 Правильный ответ (нажми, что…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →