Настройка PHPUnit и первый тест
Установите PHPUnit через Composer и напишите свой первый класс теста
«Настройка PHPUnit и первый тест» — бесплатный урок PHP Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.
Что такое PHPUnit?
PHPUnit — стандартный инструментарий модульного тестирования для PHP. Он позволяет писать автоматизированные тесты, проверяющие отдельные части кода изолированно.
Установка PHPUnit
Установите PHPUnit с помощью Composer как зависимость для разработки.
$ composer require --dev phpunit/phpunit "^11.0"Конфигурация phpunit.xml
Создайте файл phpunit.xml для настройки набора тестов.
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
bootstrap="vendor/autoload.php">
<testsuites>
<testsuite name="Unit">
<directory>tests/</directory>
</testsuite>
</testsuites>
</phpunit>Написание тестового класса
Расширьте PHPUnit\Framework\TestCase. Каждый общедоступный метод с префиксом test является тестом.
<?php
use PHPUnit\Framework\TestCase;
class CalculatorTest extends TestCase
{
public function test_addition(): void
{
$calc = new Calculator();
$this->assertEquals(5, $calc->add(2, 3));
}
}Тестируемый класс
Класс Calculator, который подвергается тестированию:
<?php
class Calculator
{
public function add(int $a, int $b): int
{
return $a + $b;
}
}Запуск тестов
Запустите PHPUnit из корневого каталога проекта.
$ vendor/bin/phpunit
...
OK (1 test, 1 assertion)Соглашения об именовании тестов
Используются два стиля: test_method_name() (snake_case с префиксом для тестов) или аннотация @test без префикса.
<?php
/** @test */
public function addition_returns_correct_sum(): void
{
$this->assertEquals(5, (new Calculator())->add(2, 3));
}Структура каталогов
Распространённая структура: каталоги тестов повторяют структуру исходного кода.
src/Calculator.php → Calculator tests/CalculatorTest.php → CalculatorTest
setUp() и tearDown()
Выполняйте код до и после каждого метода теста. Используйте setUp(), чтобы создать тестируемый объект.
<?php
protected function setUp(): void
{
$this->calc = new Calculator();
}
public function test_add(): void
{
$this->assertEquals(7, $this->calc->add(3, 4));
}setUpBeforeClass() и tearDownAfterClass()
Выполняйте код один раз до и после всех тестов в классе — это удобно для ресурсоёмкой настройки, например подключения к базе данных.
Покрытие кода
Сформируйте отчёт о покрытии (требуется Xdebug или PCOV):
$ vendor/bin/phpunit --coverage-html coverage/Итоги
Установите PHPUnit через Composer для разработки. Создайте подкласс TestCase с методами test_*(). Запускайте тесты с помощью vendor/bin/phpunit. Используйте setUp() для создания общих объектов.
Быстрая проверка
Какой базовый класс должны расширять тестовые классы PHPUnit?
Часто задаваемые вопросы
Урок «Настройка PHPUnit и первый тест» бесплатный?
Да — полный текст урока «Настройка PHPUnit и первый тест» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.
Чему я научусь в уроке «Настройка PHPUnit и первый тест»?
Установите PHPUnit через Composer и напишите свой первый класс теста Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать PHP Academy?
Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Настройка PHPUnit и первый тест»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке PHP Academy?
Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Настройка PHPUnit и первый тест
- Проверки и методы тестов
- Поставщики данных для параметризованных тестов
- Имитация зависимостей с помощью PHPUnit