[PHP] phpunitでのテスト中かどうかを判定する

PHPUnitでのテスト中に限り、キャッシュを有効にしたり、Mockを使ったりしたいケースは多いと思います。
その場合、phpunit.xmlに下記のような記述を加えます。

<phpunit>
  <php>
    <env name="PHPUNIT" value="true"/>
  <php>
</phpunit>

あとはif文で判定します。

<?php

use PHPUnit\Framework\TestCase;

class isTestingTest extends TestCase {
  function isTesting() : bool {
    return (@$_ENV['PHPUNIT'] == true);
  }

  function testIsTesting() {
    # テスト中にisTestingがtrueになることを確認
    $this->assertTrue($this->isTesting());
    
    # 環境変数をunsetした場合、判定がfalseになることを確認
    unset($_ENV['PHPUNIT']);
    $this->assertFalse($this->isTesting());
  }
}

免責事項

このブログは個人的なメモを兼ねたものです。

このブログを参考にした結果起こりうる如何なる事態に対しても、当方では責任を負いかねます。

予めご了承ください。