PHP:
Rédaction de tests

Comment faire :

PHP Natif – PHPUnit

Un outil largement utilisé pour les tests en PHP est PHPUnit. Installez-le via Composer :

composer require --dev phpunit/phpunit ^9

Écrire un test simple :

Créez un fichier CalculatorTest.php dans un répertoire tests :

use PHPUnit\Framework\TestCase;

// En supposant que vous avez une classe Calculator qui additionne des nombres
class CalculatorTest extends TestCase
{
    public function testAdd()
    {
        $calculator = new Calculator();
        $this->assertEquals(4, $calculator->add(2, 2));
    }
}

Exécutez les tests avec :

./vendor/bin/phpunit tests

Exemple de sortie :

PHPUnit 9.5.10 par Sebastian Bergmann et contributeurs.

.                                                                   1 / 1 (100%)

Temps : 00:00.005, Mémoire : 6.00 MB

OK (1 test, 1 assertion)

Bibliothèques tierces – Mockery

Pour des tests complexes, notamment le mocking d’objets, Mockery est un choix populaire.

composer require --dev mockery/mockery

Intégrer Mockery avec 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);
    }
}

Pour exécuter, utilisez la même commande PHPUnit qu’au-dessus. Mockery permet des objets mock expressifs et flexibles, facilitant le test des interactions complexes au sein de votre application.