Skip to content
...

Начало работы

Установка

Установите Testo через Composer:

bash
composer require --dev testo/testo

PHPLatest Version on PackagistLicenseTotal Downloads

Конфигурация

По умолчанию, если конфигурационный файл не указан, Testo запустит тесты из папки tests.

Чтобы настроить конфигурацию, создайте файл testo.php в корне проекта:

php
<?php

declare(strict_types=1);

use Testo\Config\ApplicationConfig;
use Testo\Config\SuiteConfig;
use Testo\Config\FinderConfig;

return new ApplicationConfig(
    suites: [
        new SuiteConfig(
            name: 'Unit',
            location: new FinderConfig(
                include: ['tests/Unit'],
            ),
        ),
    ],
);

Написание первого теста

Создайте тестовый класс в настроенной директории (например, tests/CalculatorTest.php):

php
<?php

declare(strict_types=1);

namespace Tests;

use Testo\Assert;
use Testo\Attribute\Test;
use Testo\Attribute\RetryPolicy;
use Testo\Attribute\ExpectException;

final class CalculatorTest
{
    #[Test]
    public function dividesNumbers(): void
    {
        $result = 10 / 2;

        Assert::same(5.0, $result);
        Assert::notSame(5, $result); // Типы важны!
    }

    #[Test]
    #[RetryPolicy(maxAttempts: 3)]
    public function flakyApiCall(): void
    {
        // Повторяет до 3 раз при падении теста
        $response = $this->makeExternalApiCall();

        Assert::same(200, $response->status);
    }

    #[Test]
    #[ExpectException(\RuntimeException::class)]
    public function throwsException(): void
    {
        throw new \RuntimeException('Expected error');
    }
}

Ключевые моменты

  • Атрибут #[Test] используется для пометки тестовых методов.
  • Тестовые классы не нужно наследовать от базового класса.
  • Используйте фасад Assert для утверждений и Expect для ожиданий.
  • Testo предоставляет множество атрибутов для расширения возможностей тестирования (политики повторов, обработка исключений и другое)

Запуск тестов

Чтобы запустить тесты, выполните:

bash
vendor/bin/testo

Вы увидите вывод с результатами тестов и детальной информацией о пройденных и упавших тестах.

Поддержка IDE

Для PhpStorm и IntelliJ IDEA существует официальный плагин IDEA.

Плагин предоставляет:

  • Запуск тестов прямо из IDE
  • Навигацию между тестом и реализацией
  • Визуализацию результатов тестов
  • Поддержку отладки