FuelPHP - Test unitaire

Les tests unitaires sont un processus essentiel dans le développement de grands projets. Unit testsaider à automatiser les tests des composants de l'application à chaque étape du développement. Il alerte lorsque le composant de l'application ne fonctionne pas selon la spécification métier du projet. Les tests unitaires peuvent être effectués manuellement mais sont souvent automatisés.

PHPUnit

Le framework FuelPHP s'intègre au framework de test PHPUnit. Pour écrire un test unitaire pour le framework FuelPHP, nous devons configurer PHPUnit. Si PHPUnit n'est pas installé, téléchargez-le et installez-le. Nous pouvons confirmer la disponibilité de PHPUnit dans notre système à l'aide de la commande suivante.

phpunit --version

Si PHPUnit est disponible, vous verrez le résultat similaire au suivant.

PHPUnit 5.1.3 by Sebastian Bergmann and contributors.

Création de tests unitaires

L'emplacement standard fourni par FuelPHP pour écrire un test unitaire est fuel / app / tests. Nous pouvons écrire le test unitaire pour le contrôleur, le modèle, la vue et les présentateurs dans des dossiers séparés. Écrivons un test unitaire pour valider l'objet Model_Employee.

  • Step 1 - Créez un dossier, modèle sous le dossier fuel / app / tests.

  • Step 2 - Créez un fichier, employee.php sous fuel / app / tests / model / folder.

  • Step 3 - Créez une nouvelle classe de test, Test_Model_Employee en étendant la classe TestCase fournie par PHPUnit.

  • Step 4 - Ecrire une méthode, testInstanceOfEmployee () pour associer la création d'objet employé en utilisant la méthode assertInstanceOf () fournie par la classe TestCase de PHPUnit.

Voici le code complet -

<?php  
   class Test_Model_Employee extends TestCase { 
      public function testInstanceOfEmployee() { 
         $this->assertInstanceOf(Model_Employee::class, new Model_Employee()); 
      } 
   }

Créer un groupe de test

FuelPHP fournit une option pour créer un groupe de cas de test. Créer un groupe est aussi simple que d'ajouter l'attribut docblock, @group. Incluons notre cas de test dans le groupe MyTest.

<?php   
   /** 
      * @group MyTest 
   */ 
   class Test_Model_Employee extends TestCase { 
      public function testInstanceOfEmployee() { 
         $this->assertInstanceOf(Model_Employee::class, new Model_Employee()); 
      } 
   }

Exécuter le test

Pour exécuter tous les tests du répertoire, utilisez la commande suivante.

$ php oil test

Pour exécuter un groupe spécifique de tests, utilisez la commande suivante.

$ php oil test --group = MyTest

Après avoir exécuté la commande, vous recevrez la réponse suivante.

Tests Running...This may take a few moments.
PHPUnit 5.1.3 by Sebastian Bergmann and contributors.
                                        1 / 1 (100%).
Time: 123 ms, Memory: 8.00Mb
OK (1 test, 1 assertion)