8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHPUnitの書き方

Last updated at Posted at 2024-10-01

背景

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

公式マニュアル

実践で参考にできそう

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?