このリポジトリはPHP Webアプリフレームワークである、LaravelのLTSバージョンである5.5の公式英文ドキュメントを日本語へ翻訳しています。
This project is maintained by okinaka
Laravelはユニットテストも考慮して構築されています。実際、PHPUnitをサポートしており、最初から含まれています。アプリケーションのためにphpunit.xmlファイルも最初から準備されています。さらにフレームワークはアプリケーションを記述的にテストするために便利なヘルパメソッドも持っています。
デフォルトでアプリケーションのtestsディレクトリには、2つのディレクトリが存在しています。Feature とUnitです。ユニットテストは極小さい、コードの独立した一部をテストします。実際、殆どのユニット(Unit)テストは一つのメソッドに焦点をあてます。機能(Feature)テストは、多くのオブジェクトがそれぞれどのように関しているかとか、JSONエンドポイントへ完全なHTTPリクエストを送ることさえ含む、コードの幅広い範囲をテストします。
FeatureとUnit、両テストディレクトリには、ExampleTest.phpが用意されています。真新しいLaravelアプリケーションをインストールしたら、テストを実行するためにコマンドラインで、phpunitを実行してください。
phpunit.xmlファイル中で環境変数が設定されているため、phpunitを実行するとLaravelは自動的に設定環境をtestingにセットします。Laravelはまた、セッションとキャッシュの設定をarrayドライバーに設定し、テスト中のセッションやキャッシュデータが残らないようにします。
必要であれば他のテスト設定環境を自由に作成することもできます。testing動作環境変数はphpunit.xmlの中で設定されています。テスト実行前には、config:clear Artisanコマンドを実行し、設定キャッシュをクリアするのを忘れないでください。
新しいテストケースを作成するには、make:test Artisanコマンドを使います。
// Featureディレクトリにテストを生成する
php artisan make:test UserTest
// Unitディレクトリにテストを生成する
php artisan make:test UserTest --unit
テストを生成したら、PHPUnitを使用するときと同じように、テストメソッドを定義してください。テストを実行するには、ターミナルでphpunitコマンドを実行するだけです。
<?php
namespace Tests\Unit;
use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;
class ExampleTest extends TestCase
{
/**
* 基本的なテスト例
*
* @return void
*/
public function testBasicTest()
{
$this->assertTrue(true);
}
}
{note} テストクラスに独自の
setUpメソッドを定義する場合は、parent::setUp()を確実に呼び出してください。