Учебники

Symfony – модульное тестирование

Модульное тестирование необходимо для постоянного развития в крупных проектах. Модульные тесты автоматически протестируют компоненты вашего приложения и сообщат вам, когда что-то не работает. Модульное тестирование может быть выполнено вручную, но часто автоматизировано.

PHPUnit

Платформа Symfony интегрируется с платформой модульного тестирования PHPUnit. Чтобы написать модульный тест для платформы Symfony, нам нужно настроить PHPUnit. Если PHPUnit не установлен, скачайте и установите его. Если он установлен правильно, то вы увидите следующий ответ.

phpunit 
PHPUnit 5.1.3 by Sebastian Bergmann and contributors

Модульный тест

Модульный тест – это тест против одного класса PHP, также называемого модулем.

Создайте класс Student в каталоге Libs / AppBundle. Он находится по адресу «src / AppBundle / Libs / Student.php» .

Student.php

namespace AppBundle\Libs; 

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

Теперь создайте файл StudentTest в каталоге «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); 
   } 
}

Запустить тест

Чтобы запустить тест в каталоге, используйте следующую команду.

$ phpunit

После выполнения вышеуказанной команды вы увидите следующий ответ.

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. 

Теперь запустите тесты в каталоге Libs следующим образом.