Що таке phpunit і як його використовувати

У даній статті я розгляну установку PHPUnit і коротко поясню, як ним користуватися.
Що таке юніт-тести?
Ідея юніт-тестування полягає в тому, щоб перевіряти на коректність невеликі ділянки великих програм - проганяти на деяких "хитрих" тестових наборах даних.
Чи потрібно використовувати юніт-тести на кожному проекті? Я б сказав, що далеко не завжди. Однак вони просто необхідні на будь-якому довгостроковому проекті.
Установка PHPUnit на Windows
Для початку переконайтеся, що у вас встановлена коректна версія PHP (на даний момент підтримується версія PHP не нижче 5.6), а також встановлено Composer.
Найпростіший спосіб встановити PHPUnit - це завантажити PHP архів (PHAR), який містить всі необхідні (а також деякі додаткові) залежно PHPUnit в комплекті в одному файлі.
Для установки вам, можливо, треба буде включити в php.ini розширення OpenSSL. Загалом, установка PHAR злегка схожа на процедуру ручного регулювання Composer на Windows:
dp0phpunit.phar "% *> phpunit.cmd C: \ bin> exit [/ code]
Закрийте і заново відкрийте командний рядок або перейдіть в будь-яку іншу папку, відмінну від 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 необхідно написати:
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 (). наприклад. Але насправді їх велика кількість.
Приклад тесту з документації (тестування звичайних масивів):
[Code = php] use PHPUnit \ Framework \ TestCase; class StackTest extends TestCase
Як бачите, нічого складного.
Післямова
Ну що ж, тепер варто спробувати написати свою тестову програму або ж спробувати модульне тестування на вже готовому проекті - впевнений, що покривши бібліотеки тестами, ви тільки поліпшите якість коду.
Крім того, PHPUnit можна використовувати нестандартно - я, наприклад, використовую його для перевірки лабораторних робіт в рамках маленького курсу по алгоритмам і структурам даних.