背景
Laravelを使ったAPI開発をしている中、PHPUnitを使ってテストコードを書く機会があり、PHPUnitの書き方が?な人に向けて基本的な書き方を公式から抜粋して、参考になりそうなページを備忘録として書き記しましたので、クイックスタートとして参考になれば幸いです。
基本的な書き方
名前を指定して挨拶を返すGreeter.php
は、引数に名前を指定して'Hello,
{名前}'を返します。
Greeter.php
<?php declare(strict_types=1);
final class Greeter
{
public function greet(string $name): string
{
return 'Hello, ' . $name . '!';
}
}
上記の名前に対して挨拶をするPHPのコードをPHPUnitで単体テストするためのコードGreeterTest.php
GreeterTest.php
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class GreeterTest extends TestCase
{
public function testGreetsWithName(): void
{
$greeter = new Greeter; //Greeterインスタンスを作成
$greeting = $greeter->greet('Alice'); //Aliceを引数にセットしてメソッド呼び出し
$this->assertSame('Hello, Alice!', $greeting);//期待する値と取得した値が一致することを確認するテスト
}
}
PHPUnitのテスト用のコードで単体テストを実行する方法
php artisan
コマンドを使ってPHPUnitテストを実行します。
php artisan test tests/Feature/GreeterTest.php
PHPUnit 11.3.3 by Sebastian Bergmann and contributors.
Runtime: PHP 8.3.11
. 1 / 1 (100%)
Time: 00:00, Memory: 23.02 MB //テストの実行時間とメモリ使用量
OK (1 test, 1 assertion) //実行されたテストメソッド、アサーションの数、テストは無事に完了
PHPUnitのテスト用のコードの実行するには下記の方法があります。
php artisan test
: テスト用のコードを全て実行
php artisan test tests/Feature/GreeterTest.php
: 特定のテスト用のコードのみ実行
参考になりそうなリンク
値が正しいかどうか確認するメソッド一覧
github
公式マニュアル
実践で参考にできそう