こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在5社経験している、12年目エンジニアです。
この記事では、 Laravelのテストで使用するPHPUnitにあるsetUpメソッドについて
- setUpメソッドとは
- setUpメソッドを使ったサンプルプログラム
と、丁寧に解説していきます。
前提:実行環境
実行環境は以下の通りです。
OS | Windows11 |
---|---|
PHPのバージョン | 8.2.4 |
Laravelのバージョン | 10.45.1 |
この記事では
C:\Laravel
配下に【LaravelSample】という名前でプロジェクトを作成しています。
setUpメソッドとは
setUpメソッドとは、各テストケースが実施される前に毎回実行されるメソッドです。
テストケース実施に必要な
- オブジェクトの生成
- データベースへ接続
- ファイルの読み込み
をsetUpメソッドに定義しておくと便利です。
setUpメソッドの書き方サンプルは以下になります。
1 2 3 4 5 |
protected function setUp(): void { parent::setUp(); // テスト実行前処理を書く } |
守るべきルールは、2つあります。
1つ目は、setUpメソッドの戻り値を指定している
1 |
: void |
を必ず書くことです。
もし書いていない状態でテストを実行すると
1 2 |
Fatal error: Declaration of Tests\Unit\SampleTest::setUp() must be compatible with PHPUnit\Framework\TestCase::setUp(): void in C:\Laravel\LaravelSample\tests\Unit\SampleTest.php on line 9 PHP Fatal error: Declaration of Tests\Unit\SampleTest::setUp() must be compatible with PHPUnit\Framework\TestCase::setUp(): void in C:\Laravel\LaravelSample\tests\Unit\SampleTest.php on line 9 |
というようなエラーになります。
2つ目は、setUpメソッド内で親クラスの
1 |
parent::setUp(); |
を実行することです。
呼ぶ位置も重要で、メソッドの一番最初に書く必要があります。
上記2点のルールにはお気を付けください。
では、次の章で実際に使ってみます。
setUpメソッドを解説するプログラムの概要
setUpメソッドを解説するプログラムでは、テストケースを2つ用意します。
それぞれのテスト実行前にsetUpメソッドが実行されているのかを表示させて確認します。
PHPUnitテストプログラムは
C:\Laravel\LaravelSample\tests\Unit
配下に、【SampleTest.php】というファイル名で格納しています。
PHPUnitテストサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<?php namespace Tests\Unit; use PHPUnit\Framework\TestCase; class SampleTest extends TestCase { protected function setUp(): void { parent::setUp(); dump('setUp実行'); } public function test_example1(): void { dump('test_example1実行'); $this->assertTrue(true); } public function test_example2(): void { dump('test_example2実行'); $this->assertTrue(true); } } |
実行結果
コマンドをたたいてテストケースを実行します。
指定したテストケースのみを実行するやり方は、以下の記事をご参考ください。
1 2 3 4 5 6 7 8 9 10 11 12 |
C:\Laravel\LaravelSample>php artisan test tests\Unit\SampleTest.php ^ "setUp実行" ^ "test_example1実行" ^ "setUp実行" ^ "test_example2実行" PASS Tests\Unit\SampleTest ✓ example1 0.01s ✓ example2 Tests: 2 passed (2 assertions) Duration: 0.11s |
各テストケースの実行前に、setUpメソッドが実行されていることが確認できました。
まとめ:setUpメソッドを使ってみよう!
以上がPHPUnitのsetUpメソッドについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント