Symfony - Teste de Unidade

O teste de unidade é essencial para o desenvolvimento contínuo em grandes projetos. Os testes de unidade irão testar automaticamente os componentes do seu aplicativo e alertá-lo quando algo não estiver funcionando. O teste de unidade pode ser feito manualmente, mas geralmente é automatizado.

PHPUnit

O framework Symfony se integra ao framework de teste de unidade PHPUnit. Para escrever um teste de unidade para o framework Symfony, precisamos configurar o PHPUnit. Se o PHPUnit não estiver instalado, baixe e instale-o. Se estiver instalado corretamente, você verá a seguinte resposta.

phpunit 
PHPUnit 5.1.3 by Sebastian Bergmann and contributors

Teste de unidade

Um teste de unidade é um teste contra uma única classe PHP, também chamada de unidade.

Crie uma classe Student no diretório Libs / do AppBundle. Está localizado em“src/AppBundle/Libs/Student.php”.

Student.php

namespace AppBundle\Libs; 

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

Agora, crie um arquivo StudentTest no diretório “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); 
   } 
}

Teste de corrida

Para executar o teste no diretório, use o seguinte comando.

$ phpunit

Depois de executar o comando acima, você verá a seguinte resposta.

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.

Agora, execute os testes no diretório Libs da seguinte maneira.

$ phpunit tests/AppBundle/Libs

Resultado

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