PHPUnit
| PHPUnit | |
|---|---|
| | |
| Тип | Фреймворк модульного тестирования |
| Разработчик | Sebastian Bergmann |
| Написана на | PHP |
| Операционная система | Кроссплатформенный |
| Языки интерфейса | английский |
| Первый выпуск | 15 марта 2004[1] |
| Аппаратная платформа | кроссплатформенность |
| Последняя версия | 12 (7 февраля 2025[2]) |
| Репозиторий | github.com/sebastianberg… |
| Лицензия | BSD 3 Clause |
| Сайт | phpunit.de |
PHPUnit — это фреймворк модульного тестирования для языка программирования PHP. Он является реализацией архитектуры xUnit для фреймворков модульного тестирования, которая зародилась с SUnit[англ.] и стала популярной благодаря JUnit. PHPUnit был создан Себастьяном Бергманном (Sebastian Bergmann), репозиторий размещён на GitHub.
Назначение
[править | править код]PHPUnit основан на идее о том, что разработчики должны иметь возможность быстро находить ошибки в своём новом коде и убеждаться, что в других частях кодовой базы не произошло регрессии. Как и другие фреймворки модульного тестирования, PHPUnit использует утверждения (assertions), чтобы проверить, что поведение конкретного тестируемого компонента — или «модуля» — соответствует ожидаемому.
Преимущества
[править | править код]Цель модульного тестирования — изолировать каждую часть программы и показать, что отдельные части работают корректно. Модульный тест предоставляет строгий контракт, которому должен соответствовать фрагмент кода. В результате использование модульных тестов помогает находить проблемы на раннем этапе цикла разработки.
PHPUnit может выводить результаты тестов в нескольких различных форматах, включая JUnit XML и TestDox[англ.].
Уязвимости
[править | править код]В конце 2017 года была обнаружена уязвимость CVE-2017-9841, позволявшая злоумышленникам выполнять удалённый код через PHPUnit. Отправляя на веб-сервер файл, являющийся частью PHPUnit, злоумышленник мог исполнить PHP-код этого файла на этом веб-сервере. Уязвимость была устранена разработчиком в релизах 7.5.20 и 8.5.2 от 8 января 2020 года[3].
Примечания
[править | править код]- ↑ Sebastian Bergmann blog. sebastian-bergmann.de.
- ↑ Release Announcement for Version 12 of PHPUnit.
- ↑ Bergmann, Sebastian. PHPUnit: A Security Risk? The PHP Consulting Company. Дата обращения: 20 октября 2020.
Внешние ссылки
[править | править код]- phpunit.de — официальный сайт PHPUnit