PHPUnit はテスト中のメッセージを逐一標準出力するため、header() 関数を用いたメソッドのテストができません。 header() 関数はその実行前の何らかの標準出力がされていると「Cannot modify header information」というエラーを吐いてしまいます。 以下、テストコードと対策をメモします。 現象 たとえば下記のようなテストケースはエラーで止まります。 class Api { public function output($data, $response_code = 200) { http_response_code($response_code); header('Content-Type: application/json'); // PHPUnitの標準出力のせいで、テストケース中にエラーになる $output = json_encode($d