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