PHPUnitテストで使えるメソッドやお作法的なルールのメモ

2026.03.10

以前、WordPressの関数やクエリにも対応させたPHPUnitの導入方法をメモとして残しておいた。

PHPUnitテストの導入方法メモ(WPは対象外)

【続】PHPUnitテストを「WordPress Test Suite」を使ってWPでも動かす

今回はその応用というか、PHPUnitを動かすためのお作法的なルールや実行するコマンド、テスト内容(メソッド)の種類などをメモしておく。

テスト方法

PHPUnitではテストを実行する際に様々なオプションを付けれる。

例えば特定のファイルのメソッドだけを単体でテストするとか、すべてのファイルの中身をテストするとか。

・/test内のファイルをすべてテスト
vendor/bin/phpunit


・特定のファイルだけテスト
vendor/bin/phpunit tests/ConfigTest.php


・特定のメソッドだけテスト(単体テスト)
vendor/bin/phpunit --filter category_exists


・特定クラスだけ
vendor/bin/phpunit --filter CategoryTest

テストメソッド一覧

PHPUnitが持っているメソッド(Assertions)も重要だ。

PHPUnitには 大量の assert メソッドがあり、「実際の結果」が「期待する結果」と一致するか確認する

もっと言うと、テストしたいプログラムの戻り値や戻り値以外のテストも可能となる。

よく使うものメソッドは下記のとおりだ。

assertTrue() trueか

assertFalse() falseか

assertEquals() 値が同じ

assertSame() 型も含め完全一致

assertNull() nullか

assertIsArray() 配列か

assertIsString() 文字列か

assertCount() 要素数

assertArrayHasKey() 配列キー存在

assertInstanceOf() クラス型

これらはプログラムの結果がどんな型なのかを把握しておく必要があるだろう。

PHPUnitの仕様メモ

ここからはPHPUnitテストのルールや自分が躓いたカ所を箇条書きでメモしておく。

  • ・ユニットテストは「お作法(規約)」に沿って書く文化が強い
  • ・pupunite.xmlに記載の通り、「~~Test.php」で終わるファイルのみ実行される
    → 合わせなきゃ全体テスト(vendor/bin/phpunit)でエラー出る
    → ファイル単体テストならパスする
  • ・テストのクラス名はファイル名に合わせる
    → 合わせなきゃファイル単体テストでエラー出る
    → 全体テストならパスする
  • ・テストクラス内のメソッドは「test_」を付けないとテストとして認識されない
    public function test_get_〇〇() {}
  • ・echoは戻り値ではないので、出力バッファでないと検証できない
  • ・ユニットテストは通常STGではなく、ローカル環境にて行うのが鉄則

今自分は、このWP向けユニットテストはプラグインみたいにパッケージ化できないを検討している。

近いうちにGithubには上げたいなと思う。

PIC UP