Ошибка PHPUnit "undefined index: HTTP_HOST"
Я объявил HTTP_HOST, как показано ниже.
public function testReadUser() {
$_SERVER['HTTP_HOST'] = "x.y";
.
.
.
}
Несмотря на это, phpunit дает ошибку индекса undefined. Почему?
Ответы
Ответ 1
В вашем файле phpunit.xml
вы можете установить переменные сервера. Добавьте элемент php
под корнем phpunit
:
<phpunit>
<php>
<server name='HTTP_HOST' value='http://localhost' />
</php>
</phpunit>
Для получения дополнительной информации см. документы.
Ответ 2
Это дает вам эту ошибку, потому что вы выполняете тесты через интерфейс командной строки (CLI). CLI не может получить эту информацию, поскольку запросы HTTP не поступают через HTTP.
Ответ 3
В методе тестирования вы можете объявить значение (необходимое для вашего тестирования).
Например:
function testMethod(){
$_SERVER['yourvar']='yourvalue';
...your code making the request via phpunit to the method you are testing
}
Объявив $_SERVER в вашем тестовом методе, он будет доступен для тестируемого метода. Он работает и для $_POST и $_GET, если вам нужны эти значения.