Опубликовано 28 марта, 20196 г. Админ comment_3 PHPUnit – это самая известная в мире система для юнит-тестирования приложений, написанных на языке PHP. Автор сия творения – Себастьян Бергман, хотя проект оупенсорсный и его пишет много-много людей. В данной статье я рассмотрю установку PHPUnit и вкратце объясню, как им пользоваться. Что такое юнит-тесты? Идея юнит-тестирования состоит в том, чтобы проверять на корректность небольшие участки больших программ – прогонять на некоторых «хитрых» тестовых наборах данных. Нужно ли использовать юнит-тесты на каждом проекте? Я бы сказал, что далеко не всегда. Однако они просто необходимы на любом долгосрочном проекте. Установка PHPUnit на Windows Для начала убедитесь, что у вас установлена корректная версия PHP (на данный момент поддерживается версия PHP не ниже 5.6), а также установлен Composer. Самый простой способ установить PHPUnit – это скачать PHP архив (PHAR), который содержит все необходимые (а также некоторые дополнительные) зависимости PHPUnit в комплекте в одном файле. Для установки вам, возможно, надо будет включить в php.ini расширение OpenSSL. В общем, установка PHAR слегка похожа на процедуру ручной установки Composer на Windows: C:\Users\username> cd C:\bin C:\bin> echo @php "%~dp0phpunit.phar" %* > phpunit.cmd C:\bin> exit Создайте каталог для PHP бинарных файлов; например, C:\bin; В переменную среды PATH добавьте «;c:\bin»; Скачайте https://phar.phpunit.de/phpunit.phar; Если файл в названии содержит версию, переименуйте его в «phpunit.phar» и поместите в папку C:\bin; Запустите командную строку Windows (Комбинация клавиш Windows + R , введите cmd и нажмите Enter); Создайте обёрточный BAT-файл (C:\bin\phpunit.cmd): Закройте и заново откройте командную строку или перейдите в любую другую папку, отличную от c:\bin и попробуйте запустить phpunit --version. Вы должны увидет версию PHPUnit и копирайт: C:\Users\username> phpunit --version PHPUnit x.y.z by Sebastian Bergmann and contributors Подготовка проекта к тестированию Для начала нам необходимо инициализировать автозагрузчик классов, который будет связывать пространства имён (namespace) с директориями проекта. Например, нам надо чтобы при написании use SQL\Mysql нам подключался файл libs\sql\mysql.php, в файле composer.json необходимо написать: { "autoload": { "psr-0": {" ": "libs/"} } } Composer – это большая такая штука для управлением зависимостями, но мы её пока будем использовать просто для создания автозагрузчика. Далее необходимо из командной строки в папке проекта выполнить composer install. D:\WORK\project-example>composer install Loading composer repositories with package information Updating dependencies (including require-dev) Nothing to install or update Generating autoload files После данных манипуляций должна появится директория vendor, в которой (среди кучи вспомогательных файлов) будет заветный autoload.php. Можно было автозагрузчик написать самим всего в несколько строк кода, но мы же ленивые программисты. К тому же composer нам ещё пригодится. У PHPUnit есть два варианта запуска – с параметрами в командной строке или с файлом конфигурации. Мы пойдём по второму пути – в папке проекта создаём файл phpunit.xml. В данном файле мы опишем структуру тестов для нашего проекта. Вот пример: tests/UserTest 1.php tests/UserTest 2.php tests/MessagesTest1.php tests/MessagesTest1.php Как видите, файл состоит из секций testsuite, каждая секция описывает набор тестов. Далее в каждом тестовом наборе мы указываем какие файлы тестов подключать. Можно подключать как отдельные файлы, так и целые директории. Приступим к созданию самих тестов. Написание простейшего теста Основные концепции и шаги для написания тестов на PHPUnit: Тесты для класса Class следует именовать ClassTest. ClassTest обычно наследуется от PHPUnit\Framework\TestCase. Все тесты – это публичные методы нашего ClassTest, их название должно начинаться на test. Внутри этих методов для проверки чего-либо следует вызывать assert-методы. Такие как assertEquals(), например. Но на самом деле их большое количество. Пример теста из документации (тестирование обычных массивов): Telegram сайта "Типичный социум" Do not be indifferent. Support for motivation to continue on to engage in this further! Thanks
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.