17

我已经声明了一个 HTTP_HOST,如下所示。

public function testReadUser() {

    $_SERVER['HTTP_HOST'] = "x.y";
    .
    .
    .
}

尽管如此,phpunit 给出了未定义的索引错误。为什么?

4

3 回答 3

35

在您的phpunit.xml文件中,您可以设置服务器变量。在根下添加php元素phpunit

<phpunit>
    <php>
        <server name='HTTP_HOST' value='http://localhost' />
    </php>
</phpunit>

有关更多信息,请参阅文档

于 2013-11-19T22:48:41.017 回答
4

它会给您该错误,因为您正在通过命令行界面(CLI)运行测试。CLI 无法获取该信息,因为没有通过 HTTP 进入的请求。

于 2013-07-20T09:04:37.457 回答
2

您可以在测试方法中声明值(测试方法所需)。

例如:

function testMethod(){
$_SERVER['yourvar']='yourvalue';
...your code making the request via phpunit to the method you are testing
}

通过在您的测试方法中声明 $_SERVER ,它将可用于您正在测试的方法。如果您需要这些值,它也适用于 $_POST 和 $_GET 。

于 2014-10-28T19:34:39.123 回答