PHP:
Pisanie testów

Jak to zrobić:

Natywny PHP – PHPUnit

Szeroko używanym narzędziem do testowania w PHP jest PHPUnit. Zainstaluj go za pomocą Composera:

composer require --dev phpunit/phpunit ^9

Pisanie prostego testu:

Utwórz plik CalculatorTest.php w katalogu tests:

use PHPUnit\Framework\TestCase;

// Zakładając, że masz klasę Calculator, która dodaje liczby
class CalculatorTest extends TestCase
{
    public function testAdd()
    {
        $calculator = new Calculator();
        $this->assertEquals(4, $calculator->add(2, 2));
    }
}

Uruchom testy za pomocą:

./vendor/bin/phpunit tests

Przykładowe wyjście:

PHPUnit 9.5.10 autorstwa Sebastiana Bergmanna i współpracowników.

.                                                                   1 / 1 (100%)

Czas: 00:00.005, Pamięć: 6.00 MB

OK (1 test, 1 twierdzenie)

Biblioteki firm trzecich – Mockery

Do skomplikowanego testowania, w tym mockowania obiektów, popularnym wyborem jest Mockery.

composer require --dev mockery/mockery

Integracja Mockery z 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('przekształcony wynik');

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

        $this->assertEquals('przekształcony wynik', $wynik);
    }
}

Do uruchomienia użyj tego samego polecenia PHPUnit co powyżej. Mockery pozwala na ekspresyjne i elastyczne obiekty mock, ułatwiając testowanie skomplikowanych interakcji w ramach aplikacji.