Maison >développement back-end >tutoriel php >Comment utiliser PHPUnit et Mockery pour les tests unitaires ?

Comment utiliser PHPUnit et Mockery pour les tests unitaires ?

PHPz
PHPzoriginal
2023-05-31 16:10:521271parcourir

Dans le développement de projets PHP, les tests unitaires sont une tâche très importante. PHPUnit et Mockery sont deux frameworks de tests unitaires PHP très populaires. PHPUnit est un outil de test unitaire largement utilisé, tandis que Mockery est un outil de simulation d'objets qui vise à fournir une API unifiée et concise pour créer et gérer des simulations d'objets.

En utilisant PHPUnit et Mockery, les développeurs peuvent effectuer rapidement et efficacement des tests unitaires pour garantir l'exactitude et la stabilité de leur base de code. Cet article explique comment utiliser PHPUnit et Mockery pour les tests unitaires, vous permettant ainsi d'effectuer de tels tests facilement.

  1. Tout d'abord, nous devons installer PHPUnit et Mockery. Ici, nous utiliserons Composer pour installer rapidement ces deux outils. Dans le répertoire du projet où vous souhaitez utiliser PHPUnit et Mockery, exécutez la commande suivante :
composer require --dev phpunit/phpunit mockery/mockery

Cette commande installera PHPUnit et Mockery en tant que dépendances de développement dans votre projet pour faciliter l'exécution du test unitaire. .

  1. Ensuite, nous montrerons comment utiliser PHPUnit pour créer un scénario de test. Supposons que vous écriviez une classe appelée « Calculatrice » qui gère les opérations arithmétiques de base. Nous allons créer un scénario de test sur cette classe et vérifier si elle est capable d'effectuer correctement l'opération d'ajout.

Dans le dossier de votre projet, créez un fichier appelé "CalculatorTest.php" et écrivez-y le code suivant :

use PHPUnitFrameworkTestCase;
use MyAppCalculator;

class CalculatorTest extends TestCase
{
    public function testAddition()
    {
        $calculator = new Calculator();
        $result = $calculator->add(2, 2);
        $this->assertEquals(4, $result);
    }
}

Dans ce cas de test, nous instancions d’abord un objet Calculatrice, puis utilisons la méthode add() pour effectuer l’opération d’addition. Enfin, nous utilisons la méthode assertEquals() pour vérifier si le résultat de l’opération correspond à la valeur attendue.

  1. Ensuite, voyons comment utiliser Mockery pour simuler un objet. Dans de nombreux cas, nous ne souhaitons pas utiliser d'objets réels lors des tests, mais utiliser un objet fictif pour les remplacer afin que les tests puissent être plus raffinés et efficaces. La moquerie facilite la création et l'utilisation de ces objets fictifs.

Supposons que nous écrivions une classe nommée "UserService" pour gérer la logique métier liée à l'utilisateur. Cette classe dépend d'une autre classe appelée « UserRepository » pour accéder au magasin de données utilisateur. Nous pouvons utiliser Mockery pour simuler cette dépendance afin de vérifier que le UserService fonctionne normalement dans le test.

Dans votre dossier de projet, créez un fichier appelé "UserServiceTest.php" et écrivez-y le code suivant :

use PHPUnitFrameworkTestCase;
use MyAppUserService;
use MyAppUserRepository;
use MockeryAdapterPhpunitMockeryPHPUnitIntegration;

class UserServiceTest extends TestCase
{
    use MockeryPHPUnitIntegration;

    public function testCreateUser()
    {
        $repo = Mockery::mock(UserRepository::class);
        $repo->shouldReceive('create')
             ->once()
             ->with(['name' => 'Alice']);

        $service = new UserService($repo);
        $service->createUser('Alice');
    }
}

Dans ce cas de test, nous utilisons le "Mockery: :mock()" fonction pour créer un objet UserRepository fictif. Ensuite, via la méthode "shouldReceive()", nous nous attendons à ce que la méthode "create()" de cet objet fictif soit appelée une fois, en passant un tableau nommé "'Alice'" comme paramètre. Enfin, nous instancions un objet UserService et appelons la méthode "create()" de l'objet fictif via sa méthode "createUser()".

  1. Enfin, discutons de la façon d'exécuter des cas de test dans PHPUnit et Mockery. En supposant que nous ayons créé les deux cas de test ci-dessus, nous pouvons utiliser la commande suivante pour les exécuter :
./vendor/bin/phpunit

Cette commande trouvera automatiquement tous les cas de test du projet et les exécutera. Si tous les tests réussissent, PHPUnit affichera un message pour le confirmer.

Si vous souhaitez uniquement exécuter un scénario de test spécifique, vous pouvez spécifier le fichier de test ou la méthode de test après la commande. Par exemple, pour exécuter la méthode testAddition() dans « CalculatorTest.php », vous pouvez exécuter la commande suivante :

./vendor/bin/phpunit tests/CalculatorTest.php --filter testAddition

Avec ces étapes simples, vous pouvez utiliser PHPUnit et Mockery pour les tests unitaires PHP. Une suite de tests correcte et complète contribuera à garantir la qualité et la stabilité de la base de code du projet PHP et facilitera l'amélioration continue et le développement continu.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn