我已经声明了HTTP_HOST,如下所示。
public function testReadUser() {
$_SERVER['HTTP_HOST'] = "x.y";
.
.
.
}
尽管如此,phpunit还是给出了未定义的索引错误。为什么?
在phpunit.xml
文件中,您可以设置服务器变量。在phpunit
根下添加php
元素:
<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。