こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在5社経験している、14年目エンジニアです。
この記事では、 Laravelのテストで使用するPHPUnitにあるtestアノテーションについて
- testアノテーションとは
- testアノテーションを使ったサンプルプログラム
と、丁寧に解説していきます。
前提:実行環境
実行環境は以下の通りです。
OS | Windows11 |
---|---|
PHPのバージョン | 8.2.4 |
Laravelのバージョン | 10.45.1 |
この記事では
C:\Laravel
配下に【LaravelSample】という名前でプロジェクトを作成しています。
testアノテーションとは
testアノテーションとは、このメソッドはテストメソッドだ、指定することができるアノテーションです。
PHPUnitは、メソッドの接頭辞に「test」がついているメソッドをテストメソッドとして認識します。
testアノテーションをつければ、接頭辞が「test」でなくてもテストメソッドとして認識されて実行することができます。
testアノテーションの書き方サンプルは以下になります。
1 2 3 4 5 6 7 |
/** * @test */ public function sample(): void { $this->assertTrue(true); } |
では、次の章で実際に使ってみます。
testアノテーションを解説するプログラムの概要
testアノテーションを解説するプログラムでは、接頭辞が「test」でないテストケースを2つ用意します。
1つはtestアノテーションをつける、もう1つはつけないで実行した場合、何が実行されるかを確認します。
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 |
<?php namespace Tests\Unit; use PHPUnit\Framework\TestCase; class SampleTest extends TestCase { /** * テストされない */ public function example1(): void { $this->assertTrue(true); } /** * テストされる * @test */ public function example2(): void { $this->assertTrue(true); } } |
実行結果
コマンドをたたいてテストケースを実行します。
指定したテストケースのみを実行するやり方は、以下の記事をご参考ください。
1 2 3 4 5 6 7 |
php artisan test tests\Unit\SampleTest.php PASS Tests\Unit\SampleTest ✓ example2 Tests: 1 passed (1 assertions) Duration: 0.11s |
testアノテーションを記載したメソッドのみ実行されていることを確認できました!
まとめ:testアノテーションを使ってみよう!
以上がPHPUnitのtestアノテーションについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント