注目キーワード
  1. npm
  2. composer
  3. css

[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());
	}
}