イントロダクションIntroduction
Laravelはユニットテストも考慮して構築されています。実際、PHPUnitをサポートしており、最初から含まれています。アプリケーションのためにphpunit.xml
ファイルも最初から準備されています。さらにフレームワークはアプリケーションを記述的にテストするために便利なヘルパメソッドも持っています。Laravel is built with testing in
mind. In fact, support for testing with PHPUnit is
included out of the box and a
phpunit.xml
file is already set up for
your application. The framework also ships with
convenient helper methods that allow you to
expressively test your applications.
デフォルトでアプリケーションのtests
ディレクトリには、2つのディレクトリが存在しています。Feature
とUnit
です。ユニットテストは極小さい、コードの独立した一部をテストします。実際、殆どのユニット(Unit)テストは一つのメソッドに焦点をあてます。機能(Feature)テストは、多くのオブジェクトがそれぞれどのように関しているかとか、JSONエンドポイントへ完全なHTTPリクエストを送ることさえ含む、コードの幅広い範囲をテストします。By default, your application's
tests
directory contains two
directories: Feature
and
Unit
. Unit tests are tests that focus
on a very small, isolated portion of your code. In
fact, most unit tests probably focus on a single
method. Feature tests may test a larger portion of
your code, including how several objects interact
with each other or even a full HTTP request to a
JSON endpoint.
Feature
とUnit
、両テストディレクトリには、ExampleTest.php
が用意されています。真新しいLaravelアプリケーションをインストールしたらテストを実行するため、コマンドラインからphpunit
を実行してください。An ExampleTest.php
file is provided in both the Feature
and Unit
test directories. After
installing a new Laravel application, run
phpunit
on the command line to run your
tests.
環境Environment
phpunit.xml
ファイル中で環境変数が設定されているため、phpunit
を実行するとLaravelは自動的に設定環境をtesting
にセットします。Laravelはまた、セッションとキャッシュの設定をarray
ドライバーに設定し、テスト中のセッションやキャッシュデータが残らないようにします。When running tests via
phpunit
, Laravel will automatically set
the configuration environment to
testing
because of the environment
variables defined in the phpunit.xml
file. Laravel also automatically configures the
session and cache to the array
driver
while testing, meaning no session or cache data will
be persisted while testing.
必要であれば他のテスト設定環境を自由に作成することもできます。testing
動作環境変数はphpunit.xml
の中で設定されています。テスト実行前には、config:clear
Artisanコマンドを実行し、設定キャッシュをクリアするのを忘れないでください。You are free to define other
testing environment configuration values as
necessary. The testing
environment
variables may be configured in the
phpunit.xml
file, but make sure to
clear your configuration cache using the
config:clear
Artisan command before
running your tests!
さらに、プロジェクトのルートディレクトリで、.env.testing
ファイルを生成することも可能です。PHPUnitテストやArtisanコマンドを--env=testing
オプション付きで実行する場合、.env
ファイルをこのファイルの内容でオーバーライドします。In addition, you may create a
.env.testing
file in the root of your
project. This file will override the
.env
file when running PHPUnit tests or
executing Artisan commands with the
--env=testing
option.
テストの生成と実行Creating & Running Tests
新しいテストケースを作成するには、make:test
Artisanコマンドを使います。To create a
new test case, use the make:test
Artisan command:
// Featureディレクトリにテストを生成する
php artisan make:test UserTest
// Unitディレクトリにテストを生成する
php artisan make:test UserTest --unit
テストを生成したら、PHPUnitを使用するときと同じように、テストメソッドを定義してください。テストを実行するには、ターミナルでphpunit
コマンドを実行します。Once the test has been generated,
you may define test methods as you normally would
using PHPUnit. To run your tests, execute the
phpunit
command from your
terminal:
<?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()
を確実に呼び出してください。{note} If you define your ownsetUp
method within a test class, be sure to callparent::setUp()
.