カテゴリ: PHP 更新日: 2026/04/12

PHPのPHPUnitを使った単体テスト完全ガイド!初心者でもわかるテストとデバッグ入門

PHP の PHPUnit を使った単体テストの実装
PHP の PHPUnit を使った単体テストの実装

先生と生徒の会話形式で理解しよう

生徒

「PHPでプログラムを書いたんですが、ちゃんと動いているか不安です…」

先生

「それなら、PHPUnitを使った単体テストを学ぶと安心ですよ。」

生徒

「単体テストって何ですか?パソコンもあまり触ったことがなくて…」

先生

「大丈夫です。一つずつ、例え話を交えながら説明します。」

1. 単体テストとは何か?

1. 単体テストとは何か?
1. 単体テストとは何か?

単体テストとは、プログラムの中のとても小さな部品が正しく動くかを確認する作業です。例えば、電卓を作るときに「足し算ボタンだけ」「引き算ボタンだけ」を個別に確認するようなイメージです。PHPでは、この確認作業を自動で行うためにPHPUnitというテストツールを使います。PHPUnitは、PHPのテストとデバッグでよく使われる有名な仕組みで、初心者からプロまで幅広く利用されています。

2. PHPUnitとは?初心者向けに解説

2. PHPUnitとは?初心者向けに解説
2. PHPUnitとは?初心者向けに解説

PHPUnitは、PHPで書いたプログラムが思った通りの結果を出すかをチェックする道具です。人が目で確認する代わりに、PHPUnitが自動で「正しい」「間違っている」を判断してくれます。難しい言葉で言うとテストフレームワークですが、これは「テストを楽にするための道具箱」だと考えてください。PHPの単体テスト、テストコード、デバッグの基本を学ぶ上で欠かせません。

3. PHPUnitを使う準備

3. PHPUnitを使う準備
3. PHPUnitを使う準備

まずはPHPUnitを使う準備をします。パソコンを料理台、PHPを包丁だとすると、PHPUnitは味見スプーンのような存在です。一般的にはComposerという管理ツールを使ってインストールします。Composerとは、PHPの便利な道具をまとめて管理する仕組みです。


composer require --dev phpunit/phpunit

この操作で、PHPUnitがプロジェクトに追加され、PHPのテストが書けるようになります。

4. 最初のPHP単体テストを書いてみよう

4. 最初のPHP単体テストを書いてみよう
4. 最初のPHP単体テストを書いてみよう

では、簡単な例でPHPUnitの単体テストを書いてみます。ここでは「2つの数字を足す」だけの関数をテストします。まずはテストされる側のPHPコードです。


<?php
function add($a, $b) {
    return $a + $b;
}

次に、この関数が正しく動くかを確認するテストコードを書きます。


<?php
use PHPUnit\Framework\TestCase;

class AddTest extends TestCase {
    public function testAdd() {
        $this->assertEquals(5, add(2, 3));
    }
}

assertEqualsは「期待する答え」と「実際の答え」が同じかを比べる命令です。

5. テストを実行して結果を見る

5. テストを実行して結果を見る
5. テストを実行して結果を見る

テストコードを書いたら、実行します。これは「答え合わせ」をする作業です。コマンドを実行すると、PHPUnitが自動で結果を表示します。


vendor/bin/phpunit

問題がなければ「OK」のような表示が出ます。もし間違っていれば、どこがおかしいか教えてくれるので、PHPのデバッグがとても楽になります。


OK (1 test, 1 assertion)

6. 失敗するテストを体験してみる

6. 失敗するテストを体験してみる
6. 失敗するテストを体験してみる

あえて間違った結果を期待すると、テストは失敗します。これは「間違いに気づく練習」です。例えば、次のように書き換えます。


$this->assertEquals(6, add(2, 3));

すると、PHPUnitは「結果が違う」と教えてくれます。これがPHPの単体テストとデバッグの大きなメリットです。人の目で探すより、ずっと早く安全です。

7. PHPUnitを使うメリット

7. PHPUnitを使うメリット
7. PHPUnitを使うメリット

PHPUnitを使うと、PHPのプログラムが増えても安心です。修正したときに壊れていないかをすぐ確認できます。これは、家の耐震検査を定期的に行うようなものです。PHPのテスト、単体テスト、デバッグを習慣にすると、ミスが減り、自信を持ってコードが書けるようになります。初心者のうちからPHPUnitに触れておくことで、後々とても役立ちます。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
New1
PHP
PHPの特殊文字とエスケープ処理を完全ガイド!初心者向けにhtmlspecialcharsとhtmlentitiesをやさしく解説
New2
Python
Pythonのwhile文の使い方!無限ループとbreak・continueの活用
New3
PHP
PHP のセッション変数を保存・取得・削除する方法
New4
PHP
PHP の CSRF 対策(セッション・トークンを活用)
人気記事
No.1
Java&Spring記事人気No1
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.2
Java&Spring記事人気No2
Python
Pythonの書き方を基本から解説!はじめてのPythonプログラム
No.3
Java&Spring記事人気No3
Python
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.4
Java&Spring記事人気No4
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.5
Java&Spring記事人気No5
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.6
Java&Spring記事人気No6
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.7
Java&Spring記事人気No7
PHP
PHPでREST APIを作る方法を完全ガイド!初心者でもわかるAPI開発入門
No.8
Java&Spring記事人気No8
PHP
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!