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)