Symfony - Prueba unitaria

La prueba unitaria es esencial para el desarrollo continuo en grandes proyectos. Las pruebas unitarias probarán automáticamente los componentes de su aplicación y le alertarán cuando algo no esté funcionando. Las pruebas unitarias se pueden realizar manualmente, pero a menudo se automatizan.

PHPUnit

El marco Symfony se integra con el marco de pruebas unitarias PHPUnit. Para escribir una prueba unitaria para el marco Symfony, necesitamos configurar PHPUnit. Si PHPUnit no está instalado, descárguelo e instálelo. Si está instalado correctamente, verá la siguiente respuesta.

phpunit 
PHPUnit 5.1.3 by Sebastian Bergmann and contributors

Prueba de unidad

Una prueba unitaria es una prueba contra una sola clase PHP, también llamada como unidad.

Cree una clase Student en el directorio Libs / del AppBundle. Está localizado en“src/AppBundle/Libs/Student.php”.

Student.php

namespace AppBundle\Libs; 

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

Ahora, cree un archivo StudentTest en el directorio "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); 
   } 
}

Ejecutar prueba

Para ejecutar la prueba en el directorio, use el siguiente comando.

$ phpunit

Después de ejecutar el comando anterior, verá la siguiente respuesta.

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.

Ahora, ejecute las pruebas en el directorio Libs de la siguiente manera.

$ phpunit tests/AppBundle/Libs

Resultado

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