0Pricing
PHP Academy · Урок

Настройка 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 — локальная установка не требуется.

Все уроки этого курса

  1. Настройка PHPUnit и первый тест
  2. Проверки и методы тестов
  3. Поставщики данных для параметризованных тестов
  4. Имитация зависимостей с помощью PHPUnit
← Назад к PHP Academy