Symfony-unit-testing

提供:Dev Guides
移動先:案内検索

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)