如何在使用phpunit selenium进行测试时获取全局变量

如何在使用phpunit selenium进行测试时获取全局变量,php,phpunit,selenium-ide,Php,Phpunit,Selenium Ide,我在functions.php(phpbb)中有我的自定义函数testfunction_phpbb(),我想测试它。 当我执行下面的测试用例时,我发现总是$user是空的(我没有得到全局上下文)。问题是当我在phpbb、drupal、joomla等内部测试函数时。。在通过phpunit+selenium进行测试时,如何获取上下文 正如您所发现的,全局变量会破坏单元测试。因此,它们是一个坏主意,普遍接受的解决方案是: 重写要使用的代码,以便$user变量作为参数传入(然后可以作为测试的一部分传

我在functions.php(phpbb)中有我的自定义函数testfunction_phpbb(),我想测试它。

当我执行下面的测试用例时,我发现总是$user是空的(我没有得到全局上下文)。问题是当我在phpbb、drupal、joomla等内部测试函数时。。在通过phpunit+selenium进行测试时,如何获取上下文


正如您所发现的,全局变量会破坏单元测试。因此,它们是一个坏主意,普遍接受的解决方案是:

  • 重写要使用的代码,以便$user变量作为参数传入(然后可以作为测试的一部分传入一个伪变量)
  • 使用
我通常会选择依赖注入方法,因为这样做会容易得多。但是,如果您使用的是框架,那么您可能会被globals卡住,因此第二个选项是您的最佳选择

function testfunction_phpbb()
{
global $user
...
...
...
//if valid user
return 1;
//else
return 0
}