Symfony - 单元测试



单元测试对于大型项目持续开发至关重要。单元测试会自动测试你应用程序的组件,并在你遇到问题时提醒你。单元测试可以手动完成,但经常是自动化的。

PHPUnit

Symfony 框架集成了 PHPUnit 单元测试框架。要为 Symfony 框架编写一个单元测试,我们需要设置 PHPUnit。如果 PHPUnit 未安装,则下载并安装它。如果已正确安装,你将看到以下响应。

phpunit 
PHPUnit 5.1.3 by Sebastian Bergmann and contributors

单元测试

单元测试是对单个 PHP 类的测试,该类也称为单元。

在 AppBundle 的 Libs/ 目录中创建一个 Student 类。该类位于 “src/AppBundle/Libs/Student.php”

Student.php

namespace AppBundle\Libs; 

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

现在,在 “tests/AppBundle/Libs” 目录中创建一个 StudentTest 文件。

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 目录中的测试。

$ phpunit tests/AppBundle/Libs

结果

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