PHP:
Письмо тестів

Як робити:

Рідний PHP – PHPUnit

Популярним інструментом для тестування в PHP є PHPUnit. Встановіть його через Composer:

composer require --dev phpunit/phpunit ^9

Написання простого тесту:

Створіть файл CalculatorTest.php у директорії tests:

use PHPUnit\Framework\TestCase;

// Припустимо, у вас є клас Calculator, який додає числа
class CalculatorTest extends TestCase
{
    public function testAdd()
    {
        $calculator = new Calculator();
        $this->assertEquals(4, $calculator->add(2, 2));
    }
}

Запустіть тести за допомогою:

./vendor/bin/phpunit tests

Приклад виводу:

PHPUnit 9.5.10 від Sebastian Bergmann та співавторів.

.                                                                   1 / 1 (100%)

Час: 00:00.005, Пам'ять: 6.00 MB

OK (1 тест, 1 справдження)

Сторонні бібліотеки – Mockery

Для складних тестувань, включно з макетуванням об’єктів, популярним вибором є Mockery.

composer require --dev mockery/mockery

Інтеграція Mockery з PHPUnit:

use PHPUnit\Framework\TestCase;
use Mockery as m;

class ServiceTest extends TestCase
{
    public function tearDown(): void
    {
        m::close();
    }

    public function testServiceCallsExternalService()
    {
        $externalServiceMock = m::mock(ExternalService::class);
        $externalServiceMock->shouldReceive('process')->once()->andReturn('mocked result');

        $service = new Service($externalServiceMock);
        $result = $service->execute();

        $this->assertEquals('mocked result', $result);
    }
}

Для запуску використовуйте ту саму команду PHPUnit, що й вище. Mockery дозволяє з легкістю створювати виразні та гнучкі макети об’єктів, полегшуючи тестування складних взаємодій у вашому застосунку.