Система построения сайта SBS "Web-Pro"
Средство для создания и удобного управления сайтом, имеющее расширенные
по сравнению с CMS (Content Management System) характеристики.
Более 5 лет успешного использования.
Подробнее
|
Что такое unit-тесты, и как начать ими пользоваться
К списку статей
Во многих пакетах скриптов, например, скачиваемых из Git-репозиториев, можно заметить наличие папок test или tests. В них обычно располагаются готовые скрипты для unit-тестирования. Что такое unit-тестирование в целом, можно узнать в инете, а здесь рассмотрим частный случай тестирования PHP-скриптов с использованием пакета phpunit, пожалуй, самого популярного в среде PHP.
В первую очередь ставим phpunit через Composer - нам нужен phpunit/phpunit.
И установим какой-нибудь пакет для примера, пусть это будет donatj/simplecalendar. Переходим в папку vendor/bin - эта папка будет создана Composer'ом. Запускаем тест пакета такой командой: phpunit ../donatj/simplecalendar/test/SimpleCalendarTest.php т.е. в качестве параметра указываем путь к готовому тест-файлу пакета. В ответе мы увидим ряд точек, что означает, что все тесты пройдены. Количество точек соответствует количеству тестов (в одном скрипте может быть несколько тестов). Если же какой-то из тестов не пройден, то вместо точки будет буква F, а ниже будет пояснение, что именно пошло не так. Не очень понятно, что вообще происходит? В скрипте теста прогоняются функции с заданными параметрами, phpunit сверяет ожидаемый и реальный результаты. Для лучшего понимания напишем свой простой тест, назовём файл MyClassTest.php (имя может быть любым) и положим его в корень проекта:
Мы создали 2 класса - тот, который будем тестировать - MyClass, и тот, с помощью которого будем тестировать - MyClassTest. У нас всего одна функция, поэтому и тест будет один. Как видно, есть правила именования тест-класса и функций в нём. Имя класса состоит из имени тестируемого класса + "Test", а имя функции состоит из "test" + имя тестируемой функции.assertEquals() это одна из функций, встроенных в phpunit, в частности она проверяет совпадение результатов. Мы указали первым параметром 5, т.е. ожидается, что тестируемая функция вернёт значение 5. Остаётся запустить тест: phpunit ../../MyClassTest.php Как видим, всё просто.
Рейтинг: 7.0. Голосов: 1
(0) Добавить комментарий
|