Aller au contenu
Accueil » Utilisation de PHPUnit : Un guide complet avec exemples de code (+ intégration Symfony)

Utilisation de PHPUnit : Un guide complet avec exemples de code (+ intégration Symfony)

Introduction

PHPUnit est un framework de tests unitaires pour PHP largement utilisé dans le développement logiciel. Il fournit un ensemble complet d’outils et de fonctionnalités pour écrire et exécuter des tests automatisés pour vos applications PHP. Dans cet article, nous allons explorer l’utilisation de PHPUnit et présenter des exemples de code pour vous aider à commencer.

Section 1: Installation de PHPUnit

La première étape pour utiliser PHPUnit consiste à l’installer dans votre environnement de développement. Voici comment procéder :

1.1. Utilisation de Composer

PHPUnit peut être installé via Composer, le gestionnaire de dépendances PHP. Assurez-vous d’avoir Composer installé sur votre machine, puis exécutez la commande suivante dans votre terminal :

composer require --dev phpunit/phpunit

Cette commande téléchargera et installera PHPUnit dans votre projet, en tant que dépendance de développement.

1.2. Installation globale

Vous pouvez également installer PHPUnit globalement sur votre système en utilisant la commande Composer suivante :

composer global require phpunit/phpunit

Cela rendra PHPUnit disponible en tant que commande exécutable dans n’importe quel projet.

Section 2: Écriture de tests avec PHPUnit

PHPUnit offre une syntaxe simple et expressive pour écrire des tests unitaires. Dans cette section, nous allons examiner les différentes fonctionnalités de PHPUnit pour écrire des tests efficaces.

2.1. Structure des tests

Dans PHPUnit, chaque test unitaire est une méthode dans une classe de tests. Ces classes de tests sont généralement nommées selon la convention NomDeClasseTest. Vous pouvez utiliser les annotations @test ou le préfixe test pour indiquer les méthodes de test.

use PHPUnit\Framework\TestCase;

class MathTest extends TestCase
{
    public function testAddition()
    {
        // Code de test
    }

    public function testSoustraction()
    {
        // Code de test
    }
}

2.2. Assertions

PHPUnit fournit un ensemble d’assertions pour vérifier les résultats attendus des tests. Par exemple, vous pouvez utiliser assertEquals pour vérifier si deux valeurs sont égales, assertTrue pour vérifier si une condition est vraie, etc.

public function testAddition()
{
    $result = Math::add(2, 3);
    $this->assertEquals(5, $result);
}

2.3. Méthodes de cycle de vie des tests

PHPUnit fournit des méthodes de cycle de vie des tests qui vous permettent de préparer et de nettoyer des ressources avant et après chaque test. Par exemple, setUp est exécutée avant chaque test et tearDown est exécutée après chaque test.

use PHPUnit\Framework\TestCase;

class DatabaseTest extends TestCase
{
    public function setUp(): void
    {
        // Code d'initialisation de la base de données
    }

    public function tearDown(): void
    {
        // Code de nettoyage de la base de données
    }

    public function testInsertData()
    {
        // Code de test d'insertion de données
    }

    public function testDeleteData()
    {
        // Code de test de suppression de données
    }
}

Section 4: Utilisation de PHPUnit avec Symfony

Si vous développez une application Symfony, vous pouvez facilement intégrer PHPUnit pour écrire et exécuter des tests unitaires. Voici comment procéder :

4.1. Installer PHPUnit avec Symfony Flex

Si vous utilisez Symfony Flex, vous pouvez installer PHPUnit en tant que dépendance de développement en exécutant la commande suivante dans votre terminal :

composer require --dev symfony/phpunit-bridge

Cela installera PHPUnit et la passerelle PHPUnit Bridge, qui facilite l’intégration de PHPUnit avec Symfony.

4.2. Écrire des tests avec Symfony

Dans Symfony, les tests unitaires sont généralement placés dans le répertoire tests/ à la racine de votre projet. Vous pouvez créer une classe de tests pour chaque classe que vous souhaitez tester.

Voici un exemple de classe de tests pour un contrôleur Symfony :

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class ProductControllerTest extends WebTestCase
{
    public function testShowAction()
    {
        $client = static::createClient();
        $client->request('GET', '/product/1');

        $this->assertEquals(200, $client->getResponse()->getStatusCode());
    }
}

4.3. Exécution des tests avec Symfony Console

Pour exécuter vos tests PHPUnit dans un projet Symfony, vous pouvez utiliser la console Symfony. Utilisez la commande suivante dans votre terminal :

php bin/console phpunit

Cela exécutera tous les tests unitaires présents dans le répertoire tests/ de votre projet.

Conclusion

PHPUnit est un outil puissant pour l’écriture de tests unitaires en PHP, et son intégration avec Symfony facilite la réalisation de tests dans des projets Symfony. En suivant les étapes décrites dans cet article, vous pourrez utiliser PHPUnit pour tester vos applications PHP, ainsi que vos applications Symfony, et garantir leur bon fonctionnement.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *