PHP:
Skriva tester

Hur man gör:

Naturlig PHP – PHPUnit

Ett brett använd verktyg för att testa i PHP är PHPUnit. Installera det via Composer:

composer require --dev phpunit/phpunit ^9

Skriva ett enkelt test:

Skapa en CalculatorTest.php-fil i en tests-katalog:

use PHPUnit\Framework\TestCase;

// Antaget att du har en Calculator-klass som adderar siffror
class CalculatorTest extends TestCase
{
    public function testAdd()
    {
        $calculator = new Calculator();
        $this->assertEquals(4, $calculator->add(2, 2));
    }
}

Kör testerna med:

./vendor/bin/phpunit tests

Exempel på utdata:

PHPUnit 9.5.10 av Sebastian Bergmann och bidragsgivare.

.                                                                   1 / 1 (100%)

Tid: 00:00.005, Minne: 6,00 MB

OK (1 test, 1 påstående)

Tredjepartsbibliotek – Mockery

För komplexa tester, inklusive att mocka objekt, är Mockery ett populärt val.

composer require --dev mockery/mockery

Integrera Mockery med 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);
        $resultat = $service->execute();

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

För att köra, använd samma PHPUnit-kommando som ovan. Mockery möjliggör expressiva och flexibla mock-objekt, vilket underlättar testning av komplexa interaktioner inom din applikation.