Maison >développement back-end >tutoriel php >Comment utiliser PHPUnit et Mockery pour les tests unitaires ?
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.
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. .
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.
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()".
./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!