Symfony - Tests unitaires

Le test unitaire est essentiel pour le développement continu de grands projets. Les tests unitaires testent automatiquement les composants de votre application et vous alertent lorsque quelque chose ne fonctionne pas. Les tests unitaires peuvent être effectués manuellement mais sont souvent automatisés.

PHPUnit

Le framework Symfony s'intègre au framework de tests unitaires PHPUnit. Pour écrire un test unitaire pour le framework Symfony, nous devons configurer PHPUnit. Si PHPUnit n'est pas installé, téléchargez-le et installez-le. S'il est installé correctement, vous verrez la réponse suivante.

phpunit 
PHPUnit 5.1.3 by Sebastian Bergmann and contributors

Test de l'unité

Un test unitaire est un test sur une seule classe PHP, également appelée en tant qu'unité.

Créez une classe Student dans le répertoire Libs / de l'AppBundle. Il est situé au“src/AppBundle/Libs/Student.php”.

Student.php

namespace AppBundle\Libs; 

class Student { 
   public function show($name) { 
      return $name. “ , Student name is tested!”; 
   } 
}

Maintenant, créez un fichier StudentTest dans le répertoire «tests / AppBundle / Libs».

StudentTest.php

namespace Tests\AppBundle\Libs; 
use AppBundle\Libs\Student;  

class StudentTest extends \PHPUnit_Framework_TestCase { 
   public function testShow() { 
      $stud = new Student(); 
      $assign = $stud->show(‘stud1’); 
      $check = “stud1 , Student name is tested!”; 
      $this->assertEquals($check, $assign); 
   } 
}

Lancer le test

Pour exécuter le test dans le répertoire, utilisez la commande suivante.

$ phpunit

Après avoir exécuté la commande ci-dessus, vous verrez la réponse suivante.

PHPUnit 5.1.3 by Sebastian Bergmann and contributors.  
Usage: phpunit [options] UnitTest [UnitTest.php] 
   phpunit [options] <directory>  
Code Coverage Options:  
   --coverage-clover <file>  Generate code coverage report in Clover XML format. 
   --coverage-crap4j <file>  Generate code coverage report in Crap4J XML format. 
   --coverage-html <dir>     Generate code coverage report in HTML format.

Maintenant, exécutez les tests dans le répertoire Libs comme suit.

$ phpunit tests/AppBundle/Libs

Résultat

Time: 26 ms, Memory: 4.00Mb 
OK (1 test, 1 assertion)