PHPUnit, superglobal vars.如何设置测试,以便正确设置_SERVER美元和_GET美元?

2022-08-30 23:38:33

我正在编写一些PHP代码来解析传入的URL。它严重依赖于 PHP 全局变量,例如 和 。我正在考虑在PHPUnit单元测试函数中手动设置这些。有没有更好的方法来做到这一点?$_SERVER$_GETsetUp()


答案 1

一个想法是将$_SERVER和$_GET包装成类,而不是直接访问它们,这样你就不必完全依赖它们。在通用框架中经常可以看到此方法。通过这种方式,您可以轻松地存根或模拟请求,而无需设置超全局的状态。

这样一个类的例子是:https://codereview.stackexchange.com/questions/73515/http-request-response-class


答案 2

推荐