以下に示すように、HTTP_HOST を宣言しました。
public function testReadUser() {
$_SERVER['HTTP_HOST'] = "x.y";
.
.
.
}
これにもかかわらず、phpunit は未定義のインデックス エラーを返します。それはなぜです?
ファイルでは、phpunit.xml
サーバー変数を設定できます。ルートphp
の下に要素を追加します。phpunit
<phpunit>
<php>
<server name='HTTP_HOST' value='http://localhost' />
</php>
</phpunit>
詳細については、ドキュメントを参照してください。
コマンド ライン インターフェイス (CLI) 経由でテストを実行しているため、このエラーが発生します。HTTP 経由で着信する要求がないため、CLI はその情報を取得できません。
テスト メソッドで (テストするメソッドで必要な) 値を宣言できます。
例えば:
function testMethod(){
$_SERVER['yourvar']='yourvalue';
...your code making the request via phpunit to the method you are testing
}
テスト メソッドで $_SERVER を宣言すると、テストしているメソッドで使用できるようになります。これらの値が必要な場合は、 $_POST および $_GET でも機能します。