イントロダクション

Laravelはユニットテストも考慮して構築されています。実際、PHPUnitをサポートしており、最初から含まれています。アプリケーションのためにphpunit.xmlファイルも最初から準備されています。さらにフレームワークはアプリケーションを記述的にテストするために便利なヘルパーメソッドも持っています。

ExampleTest.phpファイルがtestsディレクトリに提供されています。新しいLaravelアプリケーションをインストールした後、そのままphpunitをコマンドラインで実行し試してみてください。

環境

テスト実行時にLaravelは、設定環境を自動的にtestingへセットします。そしてLaravelはセッションととキャッシュの設定ファイルをテスト環境で呼び出します。両方のドライバはテスト環境ではarrayにセットされます。つまりデータはテストを実行している間のみ存在しているということです。

必要であれば他のテスト設定環境を自由に作成することもできます。testing動作環境変数はphpunit.xmlの中で設定されています。テスト実行前には、config:clear Artisanコマンドを実行し、設定キャッシュをクリアするのを忘れないでください。

テストの生成と実行

新しいテストケースを作成するには、make:test Artisanコマンドを使います。

php artisan make:test UserTest

上記のコマンドにより、testsディレクトリ中に新しいUserTestクラスが設置されます。それから、いつもの通りPHPUnitを使ってテストメソッドを定義してください。テストを実行するには、ただターミナルでphpunitコマンドを実行するだけです。

<?php

use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;

class UserTest extends TestCase
{
    /**
     * 基本的なテスト例
     *
     * @return void
     */
    public function testExample()
    {
        $this->assertTrue(true);
    }
}

Note: テストクラスに独自のsetUpメソッドを定義する場合は、parent::setUpを確実に呼び出してください。